我有一个变量,它是一个字符串,我想用" null"替换字符串。如果变量只包含一个空格或多个空格。我该怎么办?
答案 0 :(得分:5)
尝试以下方法:
if(str.trim().isEmpty()){
str = null;
}
答案 1 :(得分:1)
这是你可以做到的一种方式:
String spaces = " -- - -";
if (spaces.matches("[ -]*")) {
System.out.println("Only spaces and/or - or empty");
}
else {
System.out.println("Not only spaces");
}
答案 2 :(得分:1)
假设您的变量为String var
然后,
if(var.replace(" ", "").equals("")) {
var = null;
}
答案 3 :(得分:0)
首先,你可以通过使用非常简单的正则表达式来实现它自己。
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
答案 4 :(得分:0)
这个怎么样?
if(yourstring.replace(" ","").length()==0) {
yourstring = null;
}
不需要正则表达式,所以应该比解决方案更有效率。