1

我发现了如何使用 try/catch 验证输入是否为数字,但是如何验证用户输入是否仅按字母顺序排列且不包含数字?

4

3 回答 3

3

您可以使用一个简单的正则表达式:

if (str.matches("[a-zA-Z]+$")) {
   // str consists entirely of letters
}

请注意,这仅适用于字母A-Za-z。如果您需要正确支持 Unicode,更好的方法是遍历字符串的字符并使用Character.isLetter().

于 2011-10-29T15:54:34.097 回答
2
public static boolean containsNumbers(String str){
    for(char ch : str.toCharArray()){
        if(Character.isDigit(ch)){
            return true;
        }
    }
    return false;
}
于 2011-10-29T15:56:40.680 回答
1

一种方法是使用正则表达式。

private static Pattern p = Pattern.compile("^[A-Za-z]+$");

public static boolean match(String s) {
    return p.matcher(s).matches();
}

另一种方法可以遍历字符串中的所有字符并检查它们是否按字母顺序排列。

于 2011-10-29T15:54:26.133 回答