Java 正在验证13个字符的南非ID

Java 正在验证13个字符的南非ID,java,Java,我想验证用户是否只输入了13个字符。这是我的代码,它不工作。以下是我的代码: if ((ID.length() < 12) && (ID.length() > 12)) { System.out.println("Please enter a valid 13 character ID"); myId = ReceiveNumbers.nextLong(); } if((ID.length()12)){ System.out.println(“请输

我想验证用户是否只输入了13个字符。这是我的代码,它不工作。以下是我的代码:

if ((ID.length() < 12) && (ID.length() > 12))  {
    System.out.println("Please enter a valid 13 character ID");
    myId = ReceiveNumbers.nextLong();
}
if((ID.length()<12)和&(ID.length()>12)){
System.out.println(“请输入有效的13个字符的ID”);
myId=ReceiveNumbers.nextLong();
}
  • longIdToStr.length()
  • 如果希望字符串包含13个字符,则应将
    longIdToStr.length()
    与13而不是12进行比较

您可能打算使用
|
(OR)运算符而不是
&&
(AND):


(如果
longIdToStr.length()
不等于13)

当前代码有两个问题:

  • String.length()
    以1开头,因此您的返回值应该正好是13
  • 如其他人所述,字符串不能同时大于和小于12(或13) 考虑到这一点,您应该尝试以下操作

    if (longIdToStr.length() != 13)  {
        System.out.println("Please enter a valid 13 character ID");
        myId = ReceiveNumbers.nextLong();
    }
    

    长度永远不会小于或大于12…逻辑错误端如果某个东西不工作,您需要描述:它什么时候失败?什么数据?不要让人们猜测。那可能只是
    =例如
    if(longIdToStr.length()!=13)
    if(longIdToStr.length()!=13)
    将是正确的答案。请有人向我解释java中的基本重复直到循环。请举一个简单的例子。@Mode-A“repeat-till”在Java中是“do-while”。看见
    if (longIdToStr.length() != 13)
    
    if (longIdToStr.length() != 13)  {
        System.out.println("Please enter a valid 13 character ID");
        myId = ReceiveNumbers.nextLong();
    }