java中equals和compareTo的区别

2024-12-29 06:15:54
推荐回答(2个)
回答1:

equals:比较的是两个字符串中的每个字符是否相同,例如:a="1243",b="1243",那么a.equals(b)就会返回true,因为a和b两个字符串中的每一个字符都相同,如果对a或者b中的任何一个做任何修改,equals()就会返回false。compareto:这个函数的作用就是对两个字符串按字典排序的方式进行比较,返回两个字符串中第一个不同的字符的ascii码差值。

回答2:

1..equals() 用于引用数据类型(除了上面的8个,都是引用数据类型,包括封装类,Object子类等), 比较是否指向相同的对象,
例如 String str = "abc";
等效于: char data[] = {'a', 'b', 'c'}; String str = new String(data);
就是str 指向了 new String(data) 这个对象. 如果再有其他变量也指向这个对象,他们比较的结果就返回true;
由于此方法在Object里, 所以它有很多重写, 具体要看说明;
另外``` equalsIgnoreCase()可以忽略大小写;

Object和String的equals()实现存在区别,所以上面的例子不太友好。有demo在最后

2. compareTO可以比较两个字符串并且得到顺序.
按字典顺序比较两个字符串。该比较基于字符串中各个字符的 Unicode 值。将此 String 对象表示的字符序列与参数字符串所表示的字符序列进行比较。