在Java中,Character类提供了compareTo()和equals()方法来比较Character对象。
compareTo()方法 比较字符对象
根据字符的数值顺序比较两个Character对象。
✍方法声明
public int compareTo(Character anotherCharacter);
- 📥入参:anotherCharacter为要比较的Character。
- 🪐返回值:
- 如果Character等于Character,则返回0;
- 如果该Character的数值小于参数Character,则返回小于0的值;
- 如果该Character的数值大于参数Character,则返回大于0的值(有符号比较)。
下面代码创建Character对象cl和c2,并通过Character类的compare()方法判断对象c1和c2的大小。
public static void main(String[] args) {
Character c1 = new Character('1');
Character c2 = Character.valueOf('A');
Character c3 = Character.valueOf('9');
int compare12 = c1.compareTo(c2);
int compare13 = c1.compareTo(c3);
int compare31 = c3.compareTo(c1);
System.out.println(compare12);
System.out.println(compare13);
System.out.println(compare31);
}
其中 1 对应的ASCII码为 49 ,A 对应的ASCII码为 65,9 对应的ASCII码为 57。
-16
-8
8
-8
8
equals()方法 判断字符对象相等
检查此Character对象与另一个对象是否相等。当且仅当参数不是null,而且是一个与此对象包含相同char值的Character对象时,结果才是true。
✍方法声明
public boolean equals(Object obj)
- 📥入参:obj为要比较的对象。
- 🪐返回值:当且仅当参数不是null,而是一个与此对象包含相同char值的Character对象时,结果才是true。
下面代码创建Character和String对象,通过equals进行比较,将比较的结果赋给b并输出。当且仅当参数不是null,而是一个与此对象包含相同char值的Character对象时,结果才是true。所以c.equals(s)为false。
public static void main(String[] args) {
Character c1 = new Character('1');
Character c2 = Character.valueOf('1');
Character c3 = Character.valueOf('A');
boolean bool1 = c1.equals(c2);
boolean bool2 = c1.equals(c3);
System.out.println(bool1);
System.out.println(bool2);
}
true
false
false
📝总结
Character类的compareTo()方法用于数值比较两个Character对象,它基于字符的Unicode值进行比较。
equals()方法用于判断两个Character对象是否表示相同的字符值。注意,Character对象与String对象的比较通常是不相等的,除非String对象只包含一个字符。