首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >java-ee中if语句的逻辑问题

java-ee中if语句的逻辑问题
EN

Stack Overflow用户
提问于 2013-06-12 01:37:02
回答 1查看 160关注 0票数 0

我对“如果”有一个逻辑上的问题。我必须参数,一个文本框和一个select。两者都是插入类别,但select是从数据库生成的,允许用户快速选择类别。如果这个文本框不为空并且选择为空,我想插入文本框的类别。如果恰好相反,则使用选择值。如果两者都是select (文本框中的文本+ select中的选择),则选择选择值。在两者都为空的情况下,我将定义一个默认值"Other“。

代码如下:

代码语言:javascript
复制
//addRss.jsp

<select name="catOption">
<option value="">select category</option>
<c:forEach var="cat" items="${categories}">
    <option value="${cat}">${cat}</option>
</select>
<label for="category">Category</label>
<input type="text" id="category" name="category" value="" size="20" maxlength="20" />


//AddNewRss

String catText = request.getParameter("category");
    String catOption = request.getParameter("catOption");
    String category = "";

    if((catOption != null || !catOption.trim().isEmpty()) && (catText == null || catText.trim().isEmpty()))
        category = catOption;
    else if((catOption == null || catOption.trim().isEmpty()) && (catText != null || !catText.trim().isEmpty()))
        category = catText;
    else if((catOption != null || !catOption.trim().isEmpty()) && (catText != null || !catText.trim().isEmpty()))
        category = catOption;
    else
        category = "Other";

我的问题是,在两者都为空的情况下,程序将执行第一个"if“并发送一个空类别。

你有没有发现什么不对劲?

谢谢

杰里米。

注:对不起,英语不是我的主要语言。

EN

回答 1

Stack Overflow用户

发布于 2013-06-12 01:42:42

代码语言:javascript
复制
if((catOption != null && !catOption.trim().isEmpty()) 
    && (catText == null || catText.trim().isEmpty())) {
        category = catOption;
}
else if((catOption == null || catOption.trim().isEmpty())
    && (catText != null && !catText.trim().isEmpty())) {
        category = catText;
}
else if((catOption != null && !catOption.trim().isEmpty())  {
    && (catText != null && !catText.trim().isEmpty()))
        category = catOption;
}
else {
    category = "Other";
}

您还可以通过创建函数使其更具可读性:

代码语言:javascript
复制
private boolean isNullOrEmty(String str) {
     return str == null || str.trim().isEmpty();
}


if( ! isNullOrEmty(catOption) && isNullOrEmty(catText) ) {
        category = catOption;
}
else if( isNullOrEmty(catOption) && ! isNullOrEmty(catText)) {
        category = catText;
}
else if(!isNullOrEmty(catOption) && ! isNullOrEmty(catText))
        category = catOption;
}
else {
    category = "Other";
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17050296

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档