Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/string/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/kotlin/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何检查空字符串_Java_String_Error Handling - Fatal编程技术网

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());
}