Java 中的漢字和字母比較大小,在開發過程中經常會使用到。下面來講一下具體的實現方式。
//將漢字轉換為拼音,再進行比較 String s1 = "比較大小"; String s2 = "字母大小"; Collator collator = Collator.getInstance(Locale.CHINA); System.out.println(collator.compare(s1, s2)); //輸出-1,表示s1小于s2 //直接將漢字轉換為Unicode碼進行比較 String s3 = "比較大小"; String s4 = "字母大小"; System.out.println(s3.compareTo(s4)); //輸出-21,表示s3小于s4
以上是兩種比較大小的方式。需要注意的是,在 Java 中直接比較漢字和字母的大小是不準確的,因為它們在 ASCII 碼中的順序是不同的。如下面這個例子所示。
String s5 = "a"; String s6 = "比"; System.out.println(s5.compareTo(s6)); //輸出-10087 System.out.println(s6.compareTo(s5)); //輸出10087
可以看到,直接比較漢字和字母的大小,結果并不是我們預期的。因此,我們需要使用轉換的方式,將漢字轉換為拼音或 Unicode 碼,再進行比較。