我搜索了一段时间,但我找不到任何
boolean isAlpha(final char character)
{
char c = Character.toUpperCase(character);
switch (c)
{
case 'A':
case 'B':
case 'C':
case 'D':
case 'E':
case 'F':
case 'G':
case 'H':
case 'I':
case 'J':
case 'K':
case 'L':
case 'M':
case 'N':
case 'O':
case 'P':
case 'Q':
case 'R':
case 'S':
case 'T':
case 'U':
case 'V':
case 'W':
case 'X':
case 'Y':
case 'Z':
return true;
default:
return false;
}
}
答案 0 :(得分:5)
Commons Lang有CharUtils.isAsciiAlpha
,但也许您可以使用java.lang.Character.isLetter(char)
(javadoc)。不完全相同(后者不仅仅是A-Z ASCII),但可能足以满足您的需求。
答案 1 :(得分:4)
我知道这不是来自lang,而是return (c >= 'A' && c <= 'Z')
怎么样?
答案 2 :(得分:2)
StringUtils.isAlpha(String)
快,因为您没有创建新的String对象。 java.lang.Character.isLetter(char)
的某些非拉丁字符,true
将返回false
。答案 3 :(得分:2)
您可以使用StringUtils.isAlpha
那个开关非常冗长,如果我必须自己编写,我会做类似的事情:
boolean isAlpha(final char c) {
return "abcdefghijklmnopqrstuvwxyz".indexOf(Character.toLowerCase(c)) != -1;
}
答案 4 :(得分:1)
Character.isLetter()怎么样?
答案 5 :(得分:1)
如果您只想检查给定字符是否介于A-Z之间,更简单的方法是使用正则表达式:
Pattern.matches("[A-Z]", input)
输入为CharSequence
。有关Java Pattern
类的更多信息:http://download.oracle.com/javase/6/docs/api/java/util/regex/Pattern.html
不知道如何将性能与其他选项进行比较。
答案 6 :(得分:1)
Character类提供了许多有用的API。你不需要转换角色。很少有例子
Character.isLetter(char ch)
Character.isLowerCase(char ch)
Character.isUpperCase(char ch)
Character.isDigit(char ch)
Character.isLetterOrDigit(char ch)