Невозможно вызвать length() для примитивного типа int

Я пытаюсь ограничить ввод пользователей для их идентификатора студента длиной 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");
    }

person Cian    schedule 24.05.2018    source источник


Ответы (2)


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

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

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

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

person sjdm    schedule 24.05.2018

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

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

String student_id_as_string = studentId + "";
if (student_id_as_string.length() != 8) { 
  ... 
}
person bkupfer    schedule 24.05.2018