我在Redhat Linux 9.0下做了一个程序测试了一下:
Redhat Linux 9.0 JDK 1.4.1_02
使用compareTo方法比较,结果是"路上">"座位",因为
"路"的内码是0x8def,"座"的内码是0x5ea7.所以"路">"座",compareTo返回值是0x2f48
源码:
public class StringComparer {
public static void main(String[] args) throws Exception {
String a = "路上";
String b = "座位"; char[] as = storeToCharList(a);
System.out.println(a+"'s first: "+Integer.toHexString((int)as[0]));
char[] bs = storeToCharList(b);
System.out.println(b+"'s first: "+Integer.toHexString((int)bs[0])); System.out.println("Compare result = "+Integer.toHexString(a.compareTo(b)));
} private static char[] storeToCharList(String str) {
char[] cs = new char[str.length()];
for ( int i=0; i<str.length(); i++ ) {cs[i]=str.charAt(i);}
return cs;
}
}
运行结果:
路上's first: 8def
座位's first: 5ea7
Compare result = 2f48
Redhat Linux 9.0 JDK 1.4.1_02
使用compareTo方法比较,结果是"路上">"座位",因为
"路"的内码是0x8def,"座"的内码是0x5ea7.所以"路">"座",compareTo返回值是0x2f48
源码:
public class StringComparer {
public static void main(String[] args) throws Exception {
String a = "路上";
String b = "座位"; char[] as = storeToCharList(a);
System.out.println(a+"'s first: "+Integer.toHexString((int)as[0]));
char[] bs = storeToCharList(b);
System.out.println(b+"'s first: "+Integer.toHexString((int)bs[0])); System.out.println("Compare result = "+Integer.toHexString(a.compareTo(b)));
} private static char[] storeToCharList(String str) {
char[] cs = new char[str.length()];
for ( int i=0; i<str.length(); i++ ) {cs[i]=str.charAt(i);}
return cs;
}
}
运行结果:
路上's first: 8def
座位's first: 5ea7
Compare result = 2f48
System.out.println("compare ===== " + "路上".compareTo(“座位”)
compare ===== 12104(即0x2f48) 大于0 .........
说的具体的看一下 java的输入输出
部分