java - Bufferedreader 验证检查错误

标签 java bufferedreader

我非常确定我的代码可以正常工作,但由于某种原因,今天我没有更改任何内容,并且它无法正常工作。我仅在输入 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;
}

关于java - Bufferedreader 验证检查错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24246793/

相关文章:

java - 求和奇数程序

Java聊天客户端和服务器

Java BufferedReader readLine() 在 read() 之后突然不工作

java - 编译 java 文件并将文件传递到 stdin 会出现错误

java - JBoss 7.1.1 中缺少 Web 应用程序目录

java - Selenium 使用太多内存

java - Maven重新分配现有的war(无命令行)

java - BufferedReaders 跨类读取 System.in

java - 为什么我的字符串返回 "\ufffd\ufffdN a m e"

java - 扫描器类和字符串缓冲区