Невозможно вызвать length () для примитивного типа int - PullRequest
0 голосов
/ 24 мая 2018

Я пытаюсь ограничить ввод данных для своего студенческого идентификатора длиной до 8 символов, но когда я использую input.length (), он говорит мне, что я не могу вызвать length () для примитивного типа int.Есть ли способ, которым я могу легко исправить / достичь того, что я желаю по-другому?Ошибка возникает в четвертой строке.

input.nextLine();
System.out.print("Please enter your Student ID:  "); //Prompts for Student ID
int studentId = input.nextInt();
if(studentId.length() != 8)
    {
       System.out.println("Student ID must be 8 characters");
    }

Ответы [ 2 ]

0 голосов
/ 24 мая 2018

Вы определили studentId как целое число и, следовательно, не будете иметь метод length().

Можно преобразовать переменную studentId в String, а затем использовать метод length().

String student_id_as_string = studentId + "";
if (student_id_as_string.length() != 8) { 
  ... 
}
0 голосов
/ 24 мая 2018

вы можете использовать простую функцию, подобную этой, для проверки

bool validId(int n) {
    if (n < 10) return 1;
    int length = 1 + numDigits(n / 10);
    if (length == 8) return true;
    else return false;
}

Надеюсь, что это поможет

, это также абстрагирует это, облегчая чтение:)

...