Java 如何检查空字符串
如果变量包含空字符串,我将尝试为变量指定一个默认值。我使用了以下代码,但它们不起作用:Java 如何检查空字符串,java,string,error-handling,Java,String,Error Handling,如果变量包含空字符串,我将尝试为变量指定一个默认值。我使用了以下代码,但它们不起作用: if (d.lat.trim().isEmpty()) latt = 9.0819990; else { latt = Double.valueOf(d.lat.trim()).doubleValue(); } 上述代码导致错误: 然后我用 if (" ".equals(d.lat.trim())) latt = 9.0819990; else { latt = Double.val
if (d.lat.trim().isEmpty())
latt = 9.0819990;
else {
latt = Double.valueOf(d.lat.trim()).doubleValue();
}
上述代码导致错误:
然后我用
if (" ".equals(d.lat.trim()))
latt = 9.0819990;
else {
latt = Double.valueOf(d.lat.trim()).doubleValue();
}
上面的代码跳过if部分,并尝试将空字符串转换为double,从而引发关于空字符串的错误
那么,我做错了什么呢?空字符串是,但请注意引号之间没有空格。第一个块在我看来没问题,但您可能是使用Java5编译的,它还没有string.isEmpty方法。如果您使用string.length==0而不是string.isEmpty,该怎么办?NPE是正确的。 但是我可以推荐ApacheStringutils吗。 检查字符串是空白、空还是空
StringUtils.isBlank(null) = true
StringUtils.isBlank("") = true
StringUtils.isBlank(" ") = true
StringUtils.isBlank("bob") = false
StringUtils.isBlank(" bob ") = false
ApacheStringUtils是解决正在实现的验证问题的一种非常好的方法。尽管如此,您不能使用.isEmpty方法的错误似乎很奇怪,您使用的是哪个版本的JDK?尝试使用最新版本的JDK 7或至少使用JDK 6在类路径中更改JDK的版本 还要记住,空字符串表示为,只有引号,没有任何空格。你验证的方式似乎还可以。你可以试试这样的东西
if (d.lat.trim().isEmpty() || d.lat.length == 0)
latt = 9.0819990;
else {
latt = Double.valueOf(d.lat.trim()).doubleValue();
// or as mentioned before: latt = Double.parseDouble(d.lat.trim());
}
Double.valueOfstr.doubleValue可以缩短为Double.parseDoublestrIt可以进一步缩短为latt=new Doublestr
if (d.lat.trim().isEmpty() || d.lat.length == 0)
latt = 9.0819990;
else {
latt = Double.valueOf(d.lat.trim()).doubleValue();
// or as mentioned before: latt = Double.parseDouble(d.lat.trim());
}