【问题标题】:why my StringUtils class doesn't have isBlank()为什么我的 StringUtils 类没有 isBlank()
【发布时间】:2019-03-23 09:33:11
【问题描述】:

我在我的 JDK 中找不到 StringUtils.isBlank()

人们在 google 上说StringUtils.isBlank() 可用于检测空白字符串。但是我的 IntelliJ 告诉我这个函数不存在。尽管如此,StringUtils.isEmpty 也不存在。但是我看到很多人都在使用它。我可能做错了什么?

我使用的是 2019 年 1 月 9 日发布的 IntelliJ,Windows,JDK 12。也在 JDK 9 上尝试过。

【问题讨论】:

  • 您是否正确导入并添加到类路径中?您必须手动将 org.apache.commons.lang.StringUtils 添加到您的类路径中,或者将其作为依赖项添加到您的 gradle 配置或您正在使用的任何其他构建工具中。
  • 显示您的导入。你是否导入了特定的 Stringutils 类
  • 您使用的是哪个 StringUtils 类?我不知道 JDK 本身中有一个 。毫无疑问,到处都有 *many StringUtils 类的实用程序包——你使用的是哪一个? (isBlankisEmptyorg.apache.commons.lang.StringUtils 的一部分)
  • 我只知道另一个使用过的 StringUtils,它来自 Spring,它没有您在旧版本中提到的方法。

标签: java


【解决方案1】:

您可以使用自JDK11 以来添加的新String 类函数String.isBlank()

文档here

isBlank
public boolean isBlank()

Returns true if the string is empty or contains only white space codepoints, otherwise false.
Since:
11

另外,根据您的用例建议通过:StringUtils.isBlank()VsString.isEmpty()

【讨论】:

    【解决方案2】:

    您要使用的库是 org.apache.commons.lang.StringUtils,您必须手动将其添加到类路径中,或者将其作为依赖项添加到您的 gradle 配置或您正在使用的任何其他构建工具中。

    IntelliJ 不知道开箱即用的库,因为它不是 JDK 的一部分。

    【讨论】:

    • 它有一个 StringUtils 类的定义。只是不合适。
    • 由于我们没有任何代码示例,我只能给出如何使其运行的一般方法。
    • 您确实有正确的答案。 :D 我很困惑,因为 JDK 中有一个类 com.sun.tools.javac.util.StringUtils。看的不够仔细。
    【解决方案3】:

    StringUtils 来自名为“apache commons”的第三方库;它不是 java 开箱即用的库的一部分,您必须手动添加它。

    但没有必要这样做。从 JDK11 开始,字符串本身有一个 isBlank 方法:

    System.out.println("   ".isBlank());
    

    将打印true。也许您阅读了一些关于 isBlank 的内容,并将这个新的(在 JDK11 中引入)API 与 apache commons 库中的实用程序方法混淆了。

    【讨论】:

    • 是的,我知道这一点。但还是有帮助的。只是在大多数平台或情况下,它们最多支持Java 8。所以我很遗憾不能使用这个简单的API。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-10-13
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多