如果包含两个条件或者perator的语句,我有以下内容。所以在下面的代码中我得到了这个错误
java.lang.NumberFormatException: For input string: ""
我认为在java中,如果第一个条件无效,则检查if语句中的第二个条件。
compressDuration可以为空或null或空白或字符串值为100。
在下面的情况下,compressDuration为空也是空白,也不能检查第二个条件Integer.parseInt(compressDuration.trim())
?
如何编写if语句来汇总4个案例empty or null or blank or a String vlaue like 100.
?
String compressDuration = "";
if(StringUtils.isBlank(compressDuration) || Integer.parseInt(compressDuration.trim())){
System.out.println("The compressDuration has no value or a ");
}else{
}
答案 0 :(得分:1)
我认为在java中,如果第一个条件无效,则检查if语句中的第二个条件。
如果第一个条件为false,我认为你的意思是不。这是正确的,事实并非如此。很明显,StringUtils.isBlank
没有为false
返回""
如果 您的问题中的内容是您的有效示例做的。
但我怀疑你有一个带有空格的字符串,而不是""
。请注意,您在转到trim
时使用Integer.parseInt
,而在转到StringUtils.isBlank
时不是。
请注意,作为Eran pointed out,您的代码无法编译; int
运算符不能使用||
,但您的代码的条件为boolean || int
,这使得此代码不能准确表示您的实际情况有
但我怀疑这是一个案例中的trim
而不是另一个案例中的String compressDuration = /*...get it from wherever...*/;
compressDuration = compressDuration.trim();
int duration;
if (StringUtils.isBlank(compressDuration) || (duration = Integer.parseInt(compressDuration.trim())) < 0) {
System.out.println("The compressDuration has no value or a value less than zero");
} else {
System.out.println("The compressDuration is " + duration);
}
。
也许:
if
或者如果你不喜欢String compressDuration = /*...get it from wherever...*/;
compressDuration = compressDuration.trim();
int duration = StringUtils.isBlank(compressDuration) ? -1 : Integer.parseInt(compressDuration.trim();
if (duration < 0) {
System.out.println("The compressDuration has no value or a value less than zero");
} else {
System.out.println("The compressDuration is " + duration);
}
条件中的副作用(并且有充分的理由不喜欢它们,但我对非常简单的情况做了一些例外):
{{1}}
答案 1 :(得分:0)
尝试entry
方法,如果它是有效整数,则返回true。
isInt