带有或运算符的if语句中的第二个条件

时间:2017-05-24 07:50:55

标签: java

如果包含两个条件或者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{

    }

2 个答案:

答案 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