Member 14846438 Ответов: 2

Что это значит, когда возникает ошибка времени компиляции, так как int не может быть разыменован?


import java.io.*;
import java.util.Scanner;
import java.lang.*;
class Computer
{
    static String a;
    static int c=0;
    public static void input()
    {
        Scanner scan=new Scanner(System.in);
        System.out.println("Enter the four digit number :");
        a=scan.next();
        int b=Integer.parseInt(a);
        int l=b.length();//In this statement the error comes as "int cannot be dereferenced."
        for(int i=1;i<=l;i++)
        {
            if(b%i==0)
            {
                c++;
            }
        }
        if(c==2)
        {
            System.out.println(b+"is a prime number");
        }
        else
        {
            System.out.println(b+"is a composite number");
        }
    }
    public static void main(String[]args)
    {
        input();
    }
}


Что я уже пробовал:

Приведенный выше код-это то, что я пробовал.

2 Ответов

Рейтинг:
1

Patrice T

Цитата:
Что это значит, когда возникает ошибка времени компиляции, так как int не может быть разыменован?

Это, вероятно, означает, что int не является переменной длиной и, следовательно, не имеет .length().
В Java int является атомарным, это означает, что существует способ доступа к подразделу целого числа.
int b=Integer.parseInt(a);
int l=b.length();//In this statement the error comes as "int cannot be dereferenced."


Рейтинг:
0

phil.o

Какова ваша цель на этой линии?

int l=b.length();

Если вам нужна длина строкового представления b (b-целое число, а не строка, у него нет метода длины), вы можете сделать это таким образом:
int l = a.length(); // the length of original input, which could be incorrect if there are leading and/or trailing spaces
// OR
int l = String.valueOf(b).length(); // the length of the string representation of b
// OR
int l = (int)Math.log10(b) + 1; // the mathematical way for the length of an integer