如何在Java中检查空格

4
String selectedVal = "";

for (SelectItem item : filterItems) {
                selectedVal = item.getValue().toString();
                break;
            }

我得到了selectedVal=" ",如何在Java中检查这个空格为空。

我尝试使用if(!selectedVal.equals("") and if(!selectedVal.isEmpty()),但条件变为真。如何检查多个空格?

8个回答

9

在使用isEmpty()检查字符串之前,您可以先使用trim()函数对其进行修整。

boolean isEmpty = myString.trim().isEmpty();

注意使用isEmpty()方法,它只能在Java SE 6及以上版本中使用。


相关资源:


2
如果isEmpty()不可用,您也可以检查字符串长度:if (s.length() == 0) {} - helpermethod

8

我经常使用这个:

public static boolean isBlank(String s)
{
    return (s == null) || (s.trim().length() == 0);
}

当输入为null、空字符串或仅包含空格时,返回true


2

boolean isEmpty = myString.toString().trim().isEmpty()

布尔值 isEmpty 表示 myString 转换成字符串并去除前后空格后是否为空。

2
对于这样一个简单的测试,使用外部库不是一个好主意,但如果需要字符串操作(左右填充等),可以选择使用Apache commons langStringUtils.isEmpty()方法。最近,您还可以使用Google Guava库和类Strings。此库具有许多有用的工具方法(空处理等)。再次强调,仅在有其他需求而非检查空字符串时才使用此库。

1

我使用与Grodriguez发布的类似的例程。它最终在每个项目中以 util/BagOTricks.java 文件的形式出现。我的例程执行类似的检查,并将 null 返回为空格或已修剪的输入字符串。


0
使用 Apache Commons Lang 库,你可以使用 StringUtils.isEmpty() 来检查一个字符串是否为空 ("") 或 null,并使用 StringUtils.isBlank() 来检查一个字符串是否为空格、空 ("") 或 null。
请注意以下差异:

isEmpty()

StringUtils.isEmpty(null)      = true
StringUtils.isEmpty("")        = true
StringUtils.isEmpty(" ")       = false
StringUtils.isEmpty("bob")     = false
StringUtils.isEmpty("  bob  ") = false

isBlank()

StringUtils.isBlank(null)      = true
StringUtils.isBlank("")        = true
StringUtils.isBlank(" ")       = true
StringUtils.isBlank("bob")     = false
StringUtils.isBlank("  bob  ") = false

0
你可以使用这个方法:
public boolean isNullOrEmpty(String s) {
    return s == null || s.trim().isEmpty();
}

当传入的字符串为空或仅包含空格时,该方法返回true。


0

我不是Java程序员,但是在正则表达式中,\s 表示空格。

这个 链接也许会有用:

 /**
   * Helper function for making null strings safe for comparisons, etc.
   *
   * @return (s == null) ? "" : s;
   */
  public static String makeSafe(String s) {
    return (s == null) ? "" : s;
  }

/**
   * Helper function for null, empty, and whitespace string testing.
   *
   * @return true if s == null or s.equals("") or s contains only whitespace
   *         characters.
   */
  public static boolean isEmptyOrWhitespace(String s) {
    s = makeSafe(s);
    for (int i = 0, n = s.length(); i < n; i++) {
      if (!Character.isWhitespace(s.charAt(i))) {
        return false;
      }
    }
    return true;
  }

1
如果没有正则表达式,为什么要使用正则表达式? - Colin Hebert
1
@Colin Hebert:他想测试“仅空格”的条件。在我看来,这是一个经典的正则表达式1:1对应关系。特别是如果他的数据包含除空格之外的空白字符。Shimmy的过程性解决方案可能足够好,并且肯定具有更好的性能,但它远非问题的优雅翻译。 - Carl Smotricz
你能否详细说明一下makeSafe方法的作用? - dogbane
我并不从事Java业务,只是在网上搜索到这些信息。我是.NET用户,在.NET 4中,IsNullOrWhiteSpace方法是开箱即用的,否则我会检查isnull->trim->length。此外,在.NET中还有扩展方法,使解决方案更加方便。 - Shimmy Weitzhandler
@fahd,正如我所说,我根本不是Java程序员,而且正如我在帖子中所述,代码取自上面的链接:http://www.java2s.com/Code/Java/Data-Type/Blankstringemptyorwhitespace.htm - Shimmy Weitzhandler

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接