错误检查代码不会拒绝带有数字或某些字母的字符串

Sai*_*ugu 1 java error-handling

我有一个错误检查器,可确保用户输入的猜测
a) 具有特定大小(此有效)
b) 没有数字(无效)
c) 不使用某些字母(无效)
这里是我的代码,我不确定我做错了什么:

System.out.println("Enter Code:");
  guess = input.nextLine();
  guess = guess.toUpperCase();
  while (guess.length() != v || guess.contains("[0-9]") || guess.contains("[ACDEFHIJKLMNQSTUVWXZ]")) { 
   System.out.println("Bad input! Try again");
   System.out.println("Use the form \"BGRY\" with your respective length of letters");
   guess = input.nextLine();
   guess = guess.toUpperCase();
  }
Run Code Online (Sandbox Code Playgroud)

Jef*_*ang 5

java Sting.contains() 方法只检查输入的字符串是否是子字符串。要使用正则表达式,请尝试 String.matches()。

例如,对于字符串只包含某些字母,使用

while (guess.length() != v || !guess.matches("^[VALID CHARACTERS]*$")
{

}
Run Code Online (Sandbox Code Playgroud)