判断字符串是否包含 a-z 字符
我对编程很陌生。我想检查字符串s是否包含a-z字符。我使用:
if(s.contains("a") || s.contains("b") || ... {
}
但是有没有办法用更短的代码来完成这项工作?多谢
我对编程很陌生。我想检查字符串s是否包含a-z字符。我使用:
if(s.contains("a") || s.contains("b") || ... {
}
但是有没有办法用更短的代码来完成这项工作?多谢
您可以使用正则表达式
// to emulate contains, [a-z] will fail on more than one character,
// so you must add .* on both sides.
if (s.matches(".*[a-z].*")) {
// Do something
}
这将检查字符串是否包含至少一个字符a-z
检查是否所有字符都是 a-z 使用:
if ( ! s.matches(".*[^a-z].*") ) {
// Do something
}
有关 java 中正则表达式的更多信息
http://docs.oracle.com/javase/6/docs/api/java/util/regex/Pattern.html
除了正则表达式之外,假设您确实想知道字符串是否只包含字符,则可以使用Charact.isLetter(char) -
boolean hasNonLetters = false;
for (char ch : s.toCharArray()) {
if (!Character.isLetter(ch)) {
hasNonLetters = true;
break;
}
}
// hasNonLetters is true only if the String contains something that isn't a letter -
从 Javadoc 为 ,Character.isLetter(char)
如果字符的常规类别类型(由 提供)为以下任一项,则该字符被视为字母:
Character.getType(ch)
UPPERCASE_LETTER LOWERCASE_LETTER TITLECASE_LETTER MODIFIER_LETTER OTHER_LETTER