如何知道字符串变量是否只包含java中的空格?

我有一个变量,它是一个字符串,如果变量只包含一个空格或多个空格,我想用“null”替换字符串。 我该怎么做?

尝试跟进:

  if(str.trim().isEmpty()){ str = null; } 

假设您的变量是String var

然后,

 if(var.replace(" ", "").equals("")) { var = null; } 

这是你可以做到的一种方式:

  String spaces = " -- - -"; if (spaces.matches("[ -]*")) { System.out.println("Only spaces and/or - or empty"); } else { System.out.println("Not only spaces"); } 

这个怎么样?

 if(yourstring.replace(" ","").length()==0) { yourstring = null; } 

不需要正则表达式,所以应该比解决方案更有效。

首先,你可以通过使用非常简单的正则表达式来实现它。

Java Regex定义将“/ s”定义为所有空白字符的模式。 因此匹配“/ s +”的字符串为空或仅包含空格。

这是一个例子:

 public boolean isEmpty(String value) { return value.matches("/s*"); } 

但是,通过自己来做这件事并不是一个好主意。 这是一种非常常见的模式,它已经在许多库中实现。 我在几乎所有我编写的Java应用程序中的最佳实践是使用apache commons lang库。 其中包括StringUtils类。 此类中的所有方法都是nullsave,并密切关注所有可能的场景,例如空字符串。

因此,对于apache commons,它是:

 StringUtils.isBlank(value); 

看看这里: http : //commons.apache.org/proper/commons-lang/javadocs/api-3.3.2/index.html