我非常确定我可以使用此代码,但是由于某种原因,今天我没有做任何更改,并且无法正常工作。当我输入1个字符时,我只能使其工作,否则它将无法通过其中一项检查。

BufferedReader br = new BufferedReader(new InputStreamReader(System.in));

System.out.println("Enter your 1-12 capitalized alphanumeric character DLN: ");

String DLN = null;
DLN = br.readLine();

    if(DLN == null || DLN.length() > 12 || DLN.length() < 1 || !DLN.matches("[A-Z0-9]")) {
       System.out.println("You have not entered a 1-12 character DLN");
       return;
    }

最佳答案

您当前的正则表达式模式仅允许一个字符。尝试以下方法:

!DLN.matches("[A-Z0-9]+")
// ...................^


或者更好的是,将您的长度要求表达为正则表达式的一部分:

if(DLN == null || !DLN.matches("[A-Z0-9]{1,12}")) {
   System.out.println("You have not entered a 1-12 character DLN");
   return;
}

10-06 09:46