我知道upper()Java和其他框架中有很多方法,比如Apache commons lang,它将String转换为全部大写.
有没有提供任何公共库等的方法isUpper(String s)和isLower(String s)方式,检查在字符串中所有字符都是大写或小写?
编辑:
关于转换为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;
}
Run Code Online (Sandbox Code Playgroud)
这个讨论和不同的解决方案(有不同的问题),清楚地表明在commons.lang中需要一个好的实体isAllUpper(String s)方法.
在那之前,我猜这myString.toUpperCase().equals(myString)是最好的方式.