如何知道字符串变量是否只包含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