Java 在commons lang中是否有用于此的实用方法?
我找了些时间,但找不到Java 在commons lang中是否有用于此的实用方法?,java,apache-commons,Java,Apache Commons,我找了些时间,但找不到 boolean isAlpha(final char character) { char c = Character.toUpperCase(character); switch (c) { case 'A': case 'B': case 'C': case 'D': case 'E': case 'F':
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;
}
}
我知道这不是来自lang,但是关于
return(c>='A'&&c我知道这不是来自lang,但是关于return(c>='A'&&cCommons lang有CharUtils.isAsciiAlpha
,但是也许你可以使用java.lang.Character.isleter(char)
(),不太一样(后者不仅匹配A-Z ASCII),但可能足以满足您的需要。Commons Lang有CharUtils.isAsciiAlpha
,但您可以只使用java.Lang.Character.isleter(char)
()。不完全相同(后者匹配的不仅仅是A-Z ASCII),但可能足以满足您的需要。Character.isLetter()如何?Character.isLetter()如何?您想要的
- 它应该比
StringUtils.isAlpha(String)
快,因为您没有创建新的String对象
- 您可以避免在原始方法中转换为大写字符的成本
- 它比范围检查更具可读性(这就是它的实现方式)
java.lang.Character.isleter(char)
将为某些非拉丁字符返回true
,您的方法将为这些字符返回false
你想要的
- 它应该比
StringUtils.isAlpha(String)
快,因为您没有创建新的String对象
- 您可以避免在原始方法中转换为大写字符的成本
- 它比范围检查更具可读性(这就是它的实现方式)
java.lang.Character.isleter(char)
将为某些非拉丁字符返回true
,您的方法将为这些字符返回false
如果您只是想检查给定字符是否在A-Z之间,一种更简单的方法是使用正则表达式:
Pattern.matches(“[A-Z]”,输入)
其中输入为CharSequence
。有关Java模式的更多信息
类:
但是,不知道这与其他选项在性能方面的比较结果如何。如果您只是想检查给定字符是否在A-Z之间,一种更简单的方法是使用正则表达式:
Pattern.matches(“[A-Z]”,输入)
其中输入为CharSequence
。有关Java模式的更多信息
类:
但是,我不知道这与其他选项在性能方面会有什么不同。您可以使用
这个开关非常冗长,如果我必须自己写的话,我会做如下的事情:
boolean isAlpha(final char c) {
return "abcdefghijklmnopqrstuvwxyz".indexOf(Character.toLowerCase(c)) != -1;
}
你可以用
这个开关非常冗长,如果我必须自己写的话,我会做如下的事情:
boolean isAlpha(final char c) {
return "abcdefghijklmnopqrstuvwxyz".indexOf(Character.toLowerCase(c)) != -1;
}
Character类提供了许多有用的API。您不需要转换字符
字符集(字符集)
Character.isLowerCase(char-ch)
Character.isUpperCase(char-ch)
字符.isDigit(字符ch)
Character.IsleterOrdigit(char ch)Character类提供了许多有用的API。您不需要转换字符。下面是几个示例
字符集(字符集)
Character.isLowerCase(char-ch)
Character.isUpperCase(char-ch)
字符.isDigit(字符ch)
Character.isleterordigit(char-ch)你知道它们在文档中的意思吗:并不是所有的字母都有大小写。许多字符都是字母,但既不是大小写也不是标题。
?@MByD:是的,这有点晦涩,不是吗?我敢打赌,这与国际字符集有关。我想他只希望返回ASCII字符。我想他会这样做对于非ASCII字符,标准库方法也将返回true。Character.isleter
匹配除ASCII下限/上限(),所以这肯定不等同于原始字符。@ColinD-但是那些其他字符是什么,从你提供的链接看不清楚,实际上很有趣。你知道它们在文档中的意思吗:不是所有的字母都有大小写。许多字符都是字母,但既不是大写,也不是小写,也不是标题。
?@MByD:是的,不是这有点晦涩,不是吗?我敢打赌,这与国际字符集有关。我想他只希望返回ASCII字符。我假设标准库方法也会为非ASCII字符返回true。character.isleter
匹配除ASCII下限/上限(),所以这肯定不等同于原始字符。@ColinD-但是那些其他字符是什么,从您提供的链接看不清楚,实际上很有趣。虽然开关肯定比它需要的要详细得多,但它的效率要低,因为它每次都对字母表进行线性扫描,而不是han只是比较端点。虽然开关肯定比它需要的要详细得多,但它的效率要低得多,因为它每次都对字母表进行线性扫描,而不仅仅是比较端点。