【问题标题】:Cannot invoke length() on the primitive type int无法在原始类型 int 上调用 length()
【发布时间】:2018-11-03 03:00:56
【问题描述】:

我试图将用户输入的学生 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");
    }

【问题讨论】:

    标签: validation user-input variable-length


    【解决方案1】:

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

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

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

    【讨论】:

      【解决方案2】:

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

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

      希望有帮助

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

      【讨论】:

        猜你喜欢
        • 2013-11-11
        • 2012-04-15
        • 1970-01-01
        • 2014-05-19
        • 2023-03-17
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多