Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/350.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java equals(“a-zA-Z”)始终为false_Java - Fatal编程技术网

Java equals(“a-zA-Z”)始终为false

Java 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

所以,我试图创建一个只对包含字母的代码(字符串)进行检查的东西。如果它确实包含一个非字母的字符,则需要要求用户为该代码提供一个新值,然后再次检查该值。这里的问题是while循环永远不会离开。条件总是返回false

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这会接受像ñ这样的东西吗?