是否有现有的库方法来检查 Java 中的字符串是否全部为大写或小写?

2022-09-01 03:31:11

我知道在Java和其他框架(如Apache commons lang)中有很多方法,它们将String转换为全部大写。upper()

是否有任何常用库提供类似 和 的方法,以检查字符串中的所有字符是否为大写或小写?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;
}

这个讨论和不同的解决方案(有不同的问题),清楚地表明在commons.lang中需要一个好的固体isAllUpper(String s)方法。

在那之前,我想这是最好的方法。myString.toUpperCase().equals(myString)


答案 1

现在在 StringUtils isAllUpperCase 中


答案 2

此 if 条件可以获得预期的结果:

String input = "ANYINPUT";

if(input.equals(input.toUpperCase())
{
   // input is all upper case
}
else if (input.equals(input.toLowerCase())
{
   // input is all lower case
}
else
{
   // input is mixed case
}