Java equals(“a-zA-Z”)始终为false
所以,我试图创建一个只对包含字母的代码(字符串)进行检查的东西。如果它确实包含一个非字母的字符,则需要要求用户为该代码提供一个新值,然后再次检查该值。这里的问题是while循环永远不会离开。条件总是返回falseJava equals(“a-zA-Z”)始终为false,java,Java,所以,我试图创建一个只对包含字母的代码(字符串)进行检查的东西。如果它确实包含一个非字母的字符,则需要要求用户为该代码提供一个新值,然后再次检查该值。这里的问题是while循环永远不会离开。条件总是返回false kinderCode = input.next(); while (!(kinderCode.equals("[a-zA-Z]+"))) { System.out.println("Foute ingave! Kindercode?"); kinder
kinderCode = input.next();
while (!(kinderCode.equals("[a-zA-Z]+"))) {
System.out.println("Foute ingave! Kindercode?");
kinderCode = input.next();
}
您需要使用
.matches()
匹配(字符串正则表达式)
说明此字符串是否与给定的正则表达式匹配
.equals()
用于比较字符串的相等性。您需要使用.matches()
Pattern pattern = Pattern.compile("[a-zA-Z]+");
Matcher matcher = pattern.matcher(kinderCode);
if (matcher.find()){
return true;
}
return false;
匹配(字符串正则表达式)
说明此字符串是否与给定的正则表达式匹配
.equals()
用于比较字符串的相等性
Pattern pattern = Pattern.compile("[a-zA-Z]+");
Matcher matcher = pattern.matcher(kinderCode);
if (matcher.find()){
return true;
}
return false;
使用assertTrue或assertFalse进行条件匹配,作为规范
使用assertTrue或assertFalse进行条件匹配,作为规范
equals
不使用正则表达式,它比较两个普通字符串。String.equals
方法不使用正则表达式,因此这是预期的。尝试使用String.matches
instead。如果接受像ñ?equals
这样的东西,它不使用正则表达式,它比较两个普通字符串。String.equals
方法不使用正则表达式,因此这是预期的。尝试String.matches
instead这会接受像ñ这样的东西吗?