有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

regex如何在Java中检测if-else语句中的所有特殊字符?

你好, 我想问一下如何检测整个字符串行中的所有特殊字符。 这是我目前的全部代码

System.out.println("Enter username: ");
usernameRegister = regScan.nextLine();

if(usernameRegister.contains(" "))
{
  System.out.println("No space");
}
else if(usernameRegister.matches("[^a-zA-Z0-9]") )
{
  System.out.println("No special char");
}
else if(usernameRegister.length()<5)
{
  System.out.println("No less than 4 chars");
}
else
{
  System.out.println("Accepted");
}

但是我的代码的问题,特别是这个

else if(usernameRegister.matches("[^a-zA-Z0-9]") )

它只能检测字符串中的一个字符,如何使它检测整行


共 (1) 个答案

  1. # 1 楼答案

    听起来你需要的只是.matches(".*[^a-zA-Z0-9].*"),换句话说就是“任意数,然后正好是一个非字母数字,然后是任意数”。包含多个非字母数字的字符串也符合这种描述