Validation 无法对基元类型int调用length()
我试图将用户对其学生ID的输入限制为8个字符的长度,但当我使用input.length()时,它告诉我无法对基本类型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
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) {
...
}