gpt4 book ai didi

java - equals() 未按预期工作

转载 作者:行者123 更新时间:2023-12-01 07:24:23 24 4
gpt4 key购买 nike

我正在尝试比较两个帖子数据字段以查看它们是否相同。如果它们不同,我将保存信息。但是我似乎无法让 equals() 正常工作。这是一个示例:

String oldDesc1 = request.getParameter("desc1_old");
String oldDesc2 = request.getParameter("desc2_old");
String desc1 = request.getParameter("desc1");
String desc2 = request.getParameter("desc2");

if (!oldDesc1.equals(desc1) || !oldDesc2.equals(desc2)) {
out.println("made it!!");
part.setDescription(new String[] {desc1, desc2});
}
//added for testing
out.println("Old Desc 1: "+oldDesc1);
out.println("New Desc 1: "+desc1);
out.println("Old Desc 2: "+oldDesc2);
out.println("New Desc 2: "+desc2);

现在我的 Servlet 输出如下所示:

Old Desc1: foo1
New Desc1: bar1
Old Desc2: foo2
New Desc2: bar2

注意它是如何缺少“made it!!”

===编辑====

我的目标是检查 desc1 是否更改、desc2 更改或两者都更改以写入新信息。鉴于我看到的答案,您的陈述是说如果 desc1 和 desc2 发生更改,则保存信息。如果我之前没有解释清楚的话,我很抱歉!

最佳答案

您应该引用De morgan's laws :

(not a) OR (not b)  ⟷  not (a AND b)

将此规则应用于您的条件,它将相当于:

if (!(oldDesc1.equals(desc1) && oldDesc2.equals(desc2)))

这不是您想要的,请使用 && 而不是 ||

关于java - equals() 未按预期工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27826847/

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