gpt4 book ai didi

java - 如何比较 if-else 语句中的字符串?

转载 作者:搜寻专家 更新时间:2023-11-01 01:28:56 24 4
gpt4 key购买 nike

我想知道是否有人可以在 JSP 中给我一些预填充的指针:

所以我试图根据客户数据库记录中的值预填充一个复选框。如果字段中有 1,则复选框将被选中,另一个选项为 0 - 复选框应为空。

我目前在输入中使用此代码:

<%if (UPDATEDPREFERENCES != null)
{
if (ISNEWSLETTER != "0") {
out.println("checked");
}
}
%>

应该是:

<input type='checkbox' class="newsletter" name='temp_ISNEWSLETTER_FIELD' id="temp_ISNEWSLETTER_FIELD" <%if (UPDATEDPREFERENCES != null)
{
if (ISNEWSLETTER != "0") {
out.println("checked");
}
}
%>/>

就目前而言,它可以很好地预填充。但是,如果该字段为 0,它也会填充。如果我将其更改为:

if (ISNEWSLETTER == "1")

然后复选框为空,无论是 1 还是 0。

我是否遗漏了一些明显的东西?我不是开发人员,我在纽约,我的支持人员在比利时 - 他们今天都离开了。

最佳答案

Stringsobjects , 不是 primitives .使用 equals() ,而不是 ==/!===/!= 不会检查它们是否包含相同的值,而是检查它们是否指向相同的对象引用。 equals() 将检查它们是否包含相同的值。

因此,您应该使用 if (ISNEWSLETTER != "0") 而不是

if (!ISNEWSLETTER.equals("0"))

而不是 if (ISNEWSLETTER == "1") 你应该使用

if (ISNEWSLETTER.equals("1"))

此问题与 JSP 无关。在普通的 Java 类中这样做时,您会遇到完全相同的问题(这种代码实际上属于)。

作为替代方案,因为它们代表数字,您也可以将 ISNEWSLETTER 转换为 int。这是一个原语,所以你应该能够以通常的方式使用 ==/!= 。如果需要,您可以使用 Integer#parseInt()String 转换为 int .或者,甚至更多,如果它实际上表示一个 boolean 状态(它只能是 truefalse),那么您应该改用 boolean .您可以直接在 if 条件中使用它,无需进行任何比较。

关于java - 如何比较 if-else 语句中的字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7677627/

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