Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/331.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 带or运算符的if语句中的第二个条件_Java - Fatal编程技术网

Java 带or运算符的if语句中的第二个条件

Java 带or运算符的if语句中的第二个条件,java,Java,我有下面的if语句,它包含两个带或运算符的条件。在下面的代码中,我得到了这个错误 java.lang.NumberFormatException:对于输入字符串:“” 我认为在java中,如果第一个条件无效,则检查if语句中的第二个条件 compressDuration可以是空的、空的、空的,或者像100这样的字符串 在下面的情况下,compressDuration为空,也为空,第二个条件Integer.parseInt(compressDuration.trim())不能被选中 如何编写if语

我有下面的if语句,它包含两个带或运算符的条件。在下面的代码中,我得到了这个错误
java.lang.NumberFormatException:对于输入字符串:“”
我认为在java中,如果第一个条件无效,则检查if语句中的第二个条件

compressDuration可以是空的、空的、空的,或者像100这样的字符串

在下面的情况下,compressDuration为空,也为空,第二个条件
Integer.parseInt(compressDuration.trim())
不能被选中

如何编写if语句来转换4种情况
为空或null或空或字符串符(如100)。

String compressDuration = "";
   if(StringUtils.isBlank(compressDuration) || Integer.parseInt(compressDuration.trim())){
    System.out.println("The compressDuration  has no value or a ");

   }else{

    }
我认为在java中,如果第一个条件无效,则检查if语句中的第二个条件

如果第一个条件为false,我假定您的意思是未检查。这是正确的,事实并非如此。很明显,
StringUtils.isBlank
没有为
返回
false
,如果您的问题是您正在做的事情的有效示例

不过,我怀疑您的字符串中有空格,而不是
”。请注意,传递到
Integer.parseInt
时使用的是
trim
,而传递到
StringUtils.isBlank
时使用的是而不是

注意,作为一个例子,您的代码不会编译
int
不能与
| |
运算符一起使用,但您的代码具有条件
boolean | | int
,这使得此代码不能准确表示您实际拥有的内容这一观点更加重要

但我怀疑这是一种情况下的
修剪
,而不是另一种情况下的问题

也许:

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

尝试
isInt
方法,如果它是有效的整数,它将返回true

if(!isInt(compressDuration.trim())) {
   System.out.println("The compressDuration  has no value or a ");
} else{

}

public boolean isInt(String str) {

  try{
   int num = Integer.parseInt(str);
   // is an integer!
 } catch (NumberFormatException e) {
   // not an integer!
   return false;
 }
  return true;
}

你试过调试这个吗?你发布的代码没有通过编译。不能将
int
作为二进制或二进制的操作数传递。可能您正在运行的代码的早期版本确实通过了编译并引发了您提到的异常。“@tree,请查看此答案”发布问题的人会收到发布的每个答案的通知,没有必要对其进行ping。是的,您是对的,未经检查!是否有一种方法可以对案例进行一次检查?我正在用groovy脚本编写代码。
if(!isInt(compressDuration.trim())) {
   System.out.println("The compressDuration  has no value or a ");
} else{

}

public boolean isInt(String str) {

  try{
   int num = Integer.parseInt(str);
   // is an integer!
 } catch (NumberFormatException e) {
   // not an integer!
   return false;
 }
  return true;
}