Validation 无法对基元类型int调用length()

Validation 无法对基元类型int调用length(),validation,user-input,variable-length,Validation,User Input,Variable Length,我试图将用户对其学生ID的输入限制为8个字符的长度,但当我使用input.length()时,它告诉我无法对基本类型int调用length()。有没有其他方法可以轻松修复/实现我希望的其他方法?错误发生在第四行 input.nextLine(); System.out.print("Please enter your Student ID: "); //Prompts for Student ID int studentId = input.nextInt(); if(studentId.le

我试图将用户对其学生ID的输入限制为8个字符的长度,但当我使用input.length()时,它告诉我无法对基本类型int调用length()。有没有其他方法可以轻松修复/实现我希望的其他方法?错误发生在第四行

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");
    }

您可以使用这样一个简单的函数进行验证

bool validId(int n) {
    if (n < 10) return 1;
    int length = 1 + numDigits(n / 10);
    if (length == 8) return true;
    else return false;
}
bool validId(int n){
如果(n<10)返回1;
整数长度=1+numDigits(n/10);
if(length==8)返回true;
否则返回false;
}
希望有帮助


它还将其抽象出来,使其更易于阅读:)

您将
studentId
定义为整数,因此没有
length()
方法

您可以将
studentId
变量强制转换为
String
,然后使用
length()
方法

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