gpt4 book ai didi

java - if 语句中的第二个条件带有 or 运算符

转载 作者:行者123 更新时间:2023-12-02 13:05:44 25 4
gpt4 key购买 nike

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

compressDuration 可以为空、null、空白或字符串值(如 100)。

在下面的情况下,compressDuration 为空,也为空,第二个条件 Integer.parseInt(compressDuration.trim()) 不得检查?

如何编写 if 语句来转换 4 种情况 empty、null、blank 或像 100 这样的 String vlaue。

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

}else{

}

最佳答案

I thought in java the second condition in the if statment is checked if the first condition is not valid.

我假设您的意思是检查第一个条件是否为假。这是正确的,但事实并非如此。很明显,StringUtils.isBlank 不会为 "" if 返回 false您的问题中的内容是您正在做的事情的有效示例。

不过,我怀疑您的字符串中有空格,而不是 ""。请注意,您在传递给 Integer.parseInt 时使用了 trim,但在传递给 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 条件中的副作用(并且有充分的理由不喜欢它们,但我对非常简单的情况做了一些异常(exception)):

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

关于java - if 语句中的第二个条件带有 or 运算符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44152207/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com