gpt4 book ai didi

java - 在 Java 中不工作字符串比较

转载 作者:行者123 更新时间:2023-12-04 10:55:17 25 4
gpt4 key购买 nike

此代码无效:

String name = "Bob";
String name1 = "Anne";
if name = name1;
System.out.println ("Hello");

我是 Java 初学者,请帮助我们编写此代码。我正在尝试比较两个字符串。

最佳答案

你想要:

if (name.equals(name1))

注意你想要

if (name == name1)

这在语法上是正确的,但是会比较两个字符串引用是否相等,而不是比较所涉及的对象是否表示相同的字符序列

此外,请注意,即使是顶级版本也只会对字符串中的 UTF-16 代码单元执行序数比较。如果这两个字符串在逻辑上表示相同的字符但形式不同,则可能得不到预期的结果。如果你想做一个文化敏感的比较,你应该看看Collator .

此外,如果您真的是 Java 新手,我建议您从控制台应用程序和/或单元测试开始探索该语言而不是 JSP - 它会给您学习基础知识的周期更加顺畅,工作环境更加简单。

此外,如果 name 是空引用,顶部给出的代码将抛出 NullPointerException。你应该考虑你想在那个时候发生什么——如果字符串为 null 无论如何都代表一个错误,那么异常可能是合适的;否则,您可能想要更改代码。 Guava 中的一种有用方法(充满了好东西)是 Objects.equal:

if (Objects.equal(name, name1))

如果两个参数为空,则该方法返回 true,如果恰好一个参数为空,则返回 false,以及调用 equals() 的结果如果它们都是非空的。非常方便。

关于java - 在 Java 中不工作字符串比较,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8352336/

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