gpt4 book ai didi

java - compareTo()==0 不工作

转载 作者:行者123 更新时间:2023-11-29 03:41:27 25 4
gpt4 key购买 nike

我在双向链表中使用 compareTo() 来比较代码和读取的字符串,但无法弄清楚为什么它不起作用。涉及的代码很多,但我不想让你们通读所有内容,所以我会尽量只发布相关的内容,希望这些内容足够了。

这是一行代码。我知道它不完整,但其他一切正常。

if(p.getCode().compareTo(str)==0){

而且他们是平等的。我在比较之前就把它们打印出来了,它们是一样的。

我知道没有给出多少,我有点想请你相信我,他们真的是平等的,但这是为了节省你的时间。我想知道关于我缺少的 compareTo() 是否有一些我应该知道的特殊规则......

谢谢。

最佳答案

compareToComparable 提供界面。没有语言强制要求当 Object.equals 返回 trueComparable.compareTo 返回 0。也就是说,一个对象的两个实例可能完全相同,Comparator.compareTo 的实现不必返回 0

假设 p.getCode 返回一个 String 并且参数 str 是一个 String,那么实现String 确保 equalscompareTo 一致。

所以还有其他的可能性:

  1. 您在一个或两个参数中有前导或尾随空格。如果您正沿着添加调试日志记录的路线前进,我经常发现在每个字符串周围使用竖线('|')字符很有帮助,因为空格将是可见的。
  2. 大写字符与小写字符有所不同。字符串比较区分大小写,必须使用特殊的不区分大小写的 Comparator

关于java - compareTo()==0 不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12923878/

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