当前位置: 首页 > 面试题库 >

是否存在现有的库方法来检查String在Java中是全部大写还是小写?

百里默
2023-03-14
问题内容

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

是否有提供诸如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中需要一个好的solid isAllUpper(String s)方法。

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


问题答案:

番石榴的CharMatchers倾向于为此类问题提供非常富有表现力和高效的解决方案。

CharMatcher.javaUpperCase().matchesAllOf("AAA"); // true
CharMatcher.javaUpperCase().matchesAllOf("A SENTENCE"); // false
CharMatcher.javaUpperCase().or(CharMatcher.whitespace()).matchesAllOf("A SENTENCE"); // true
CharMatcher.javaUpperCase().or(CharMatcher.javaLetter().negate()).matchesAllOf("A SENTENCE"); // true
CharMatcher.javaLowerCase().matchesNoneOf("A SENTENCE"); // true

的静态导入com.google.common.base.CharMatcher.*可以帮助使它们更简洁。

javaLowerCase().matchesNoneOf("A SENTENCE"); // true


 类似资料:
  • 所以我想检查我的列表中是否有一个词存在于消息中,所以我做了这样的操作: 但现在我还想检查我的列表中是否有一个词不存在,但如果我这样做了,它就不会工作。只是无视黑名单 为什么会这样?

  • 问题内容: 编写HTML5文档类型时,正确的方法是什么? 要么 问题答案: 在HTML中,DOCTYPE不区分大小写。以下DOCTYPE均有效: 在XML序列化(即XHTML)中,不需要DOCTYPE,但是如果使用它,则应大写: 请参阅 HTML5的XML序列化,又名“XHTML5”: 请注意,如果您不在XHTML文档中使用大写字母,则XML解析器将返回语法错误。 第二部分可以用小写(),大写()

  • 问题内容: 无论如何,通过将其与给定的字符串进行比较来检查是否存在枚举?我似乎找不到任何这样的功能。我可以尝试使用该方法并捕获异常,但是据我了解,捕获运行时异常不是一种好习惯。有人有什么想法吗? 问题答案: 我不认为没有捕获异常的内置方法。您可以改用如下方式: 编辑: 正如乔恩·斯凯特(Jon Skeet)所述,每次调用时,都会通过克隆私有支持数组来工作。如果性能至关重要,则可能只需要调用一次,缓

  • 问题内容: 我想编写一个Java方法,如果字符串是回文,则返回true。 这是我到目前为止的内容: 我的问题是,它不考虑像这样的单词:回文。 在不区分大小写并忽略标点符号的情况下,测试这是否是回文式的最佳方法是什么。 问题答案: 使用此正则表达式删除所有标点和空格并将其转换为小写

  • 问题内容: 我有一个嵌入了数据库的桌面应用程序。当我执行程序时,我需要检查特定的表是否存在,如果不存在则创建它。 给我的数据库一个名为conn的Connection对象,我该如何检查呢? 问题答案: 您可以使用可用的元数据: 有关更多详细信息,请参见此处。还要注意JavaDoc中的注意事项。

  • 问题内容: 我正在尝试检查$ _POST是否存在,如果存在,则在另一个字符串中打印它,如果不存在,则根本不打印。 像这样的东西: 任何帮助将是巨大的! 问题答案: