当前位置: 首页 > 知识库问答 >
问题:

字符串中的比较是如何工作的?[副本]

索锐藻
2023-03-14
1) System.out.println("String".toString()=="String"); // output is true

2) System.out.println("String".trim()=="String"); // output is true

3) System.out.println("String ".trim()=="String"); // output is false

共有1个答案

姚晋
2023-03-14

trim()返回删除了前导空格和尾随空格的此字符串的副本,如果字符串没有前导空格或尾随空格,则返回此字符串的副本。

>

  • 在第一种情况下,答案是真的,这一点也不奇怪,因为引用是相等的

    在第二种情况下,没有前导空格或尾随空格,因此trim再次返回相同的字符串,引用相等

    在最后一种情况下,trim返回一个副本,因为字符串的尾部有一个空白,这会导致不同的引用,因此您的比较将为false。

  •  类似资料:
    • 问题内容: 到目前为止,我一直在程序中使用运算符比较所有字符串。但是,我遇到了一个错误,将其中一个更改为错误,并修复了该错误。 是==坏?什么时候应该使用它,不应该使用它?有什么不同? 问题答案: 测试引用是否相等(它们是否是同一对象)。 测试值是否相等(在逻辑上是否为“相等”)。 在调用之前进行检查,因此您不必(在JDK7起可用,在Guava中也可用)。 因此,如果要测试两个字符串是否具有相同的

    • 我有两个数组列表,一个是字符串列表,第二个是Toggle按钮列表。现在我想比较两个数组中的字符串。请帮助我。

    • 我是MVC编程的新手。所以我用的是play框架。 获取未捕获的引用Error:未定义MODERATED

    • 问题内容: 给我输出: 我不太了解第一行,为什么它会给我带来错误? 如果我在字符串2上添加空格,则此行为false,但如果不添加空格,则为true: 为什么第1行给我假,但第6行为真,但是如果我在string2上添加空格则为假。 谢谢=) 问题答案: 那里发生了几件事。 当您将两个字符串声明为相等的“ Hi”时,java将对其进行优化以引用相同的字符串对象(因此不必将相同的字符串存储两次)。 “

    • 问题内容: “按字典顺序比较两个字符串”是什么意思? 问题答案: 从@Bozho和@aioobe的答案出发,字典比较类似于在字典中可能会发现的顺序。 Java String类提供了该方法以便按字典顺序比较String。这样使用。 此方法的返回int值可以解释如下: 返回<0,则调用该方法的String按字典顺序排在首位(在字典中排在首位) 返回== 0,则这两个字符串在字典上等效 返回> 0,然后