【发布时间】:2009-03-24 14:08:06
【问题描述】:
我知道在 Java 和其他框架(如 Apache commons lang)中有很多 upper() 方法,它们将字符串转换为全部大写。
有没有提供像isUpper(String s)和isLower(String s)这样的方法来检查String中所有字符是大写还是小写的通用库?
编辑:
关于转换为 Upper 并与此进行比较的许多很好的答案。我想我应该更具体一点,并说我已经想到了这一点,但我希望能够使用现有的方法。
关于在 apache.commons.lang.StringUtils 中可能包含此内容的好评论。 甚至有人提交了补丁(20090310)。希望我们很快就会看到这一点。 https://issues.apache.org/jira/browse/LANG-471
编辑:
我需要这种方法的目的是将有时全大写的酒店名称大写。如果它们都是小写或大写,我只想将它们大写。 我确实遇到了一些帖子中提到的非字母字符的问题,并最终做了这样的事情:
private static boolean isAllUpper(String s) {
for(char c : s.toCharArray()) {
if(Character.isLetter(c) && Character.isLowerCase(c)) {
return false;
}
}
return true;
}
这个讨论和不同的解决方案(有不同的问题)清楚地表明,在 commons.lang 中需要一个好的可靠的 isAllUpper(String s) 方法
在那之前,我想myString.toUpperCase().equals(myString) 是最好的选择。
【问题讨论】:
-
看看@issues.apache.org/jira/browse/LANG-471是否会在某一天被添加到apache commons