日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

java中如何对汉字进行排序?

發布時間:2023/12/3 编程问答 24 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java中如何对汉字进行排序? 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

前言:上一篇文章我們講解了java中實現Comparator進行排序 和實現Comparable進行排序,我們分別舉例根據學號和姓名降序排序,原文在這里:java中如何對對象排序?? ,不過在文章的最后,我故意留了個問題:“若姓名是漢字,我們上篇文章的方法還可以進行排序嗎?”答案是不可以的,今天,我們就這個問題展開闡述!

漢字按照首字母的先后順序排序

首先我們在上篇文章的代碼基礎上,把集合的值(name)改成漢字的名稱(畢竟學生的姓名哪有叫什么a、b、c的),代碼如下:

//對集合進行排序public?static?void?testSortList(){List<Student> stus = new?ArrayList<Student>();stus.add(new?Student(1,"阿三"));stus.add(new?Student(4,"布丁"));stus.add(new?Student(5,"曹操"));stus.add(new?Student(2,"馮勝"));stus.add(new?Student(3,"張三"));System.out.println("排序之前:");for?(Student s : stus) {System.out.println(s.getSid()+"---"+s.getName());}//Collections.sort(stus);Collections.sort(stus,new?SortName());System.out.println("排序之后:\n");for?(Student s : stus) {System.out.println(s.getSid()+"---"+s.getName());}}

按照我們預想的結果,升序的結果應該是:

阿三、布丁、曹操、馮勝、張三

下面我們來跑一下程序看看是不是:

居然不可以,看看問題出在哪里?用腳指頭都能想得出來,問題就出在了SortName類的compare方法上,該方法的compareTo只適用于字母字符排序(上篇文章的案例就是),compareTo方法的代碼:

@Overridepublic int compare(Student o,Student o1) {return?o.getName().compareTo(o1.getName());}

那我們應該如何改呢?只需要新加個Collator.getInstance(java.util.Locale.CHINA);即可,全部代碼如下:

@Overridepublic?int?compare(Student o,Student o1)?{Comparator<Object> compare = Collator.getInstance(java.util.Locale.CHINA);return?compare.compare(o1.getName(),o.getName());}

讓程序跑一跑看看:

那位又問:“老師,這是降序,升序怎么辦?”好辦,只需將compare里面的參數調換個位置即可,如下:

@Overridepublic?int?compare(Student o,Student o1)?{Comparator<Object> compare = Collator.getInstance(java.util.Locale.CHINA);return?compare.compare(o.getName(),o1.getName());}

結果如下:

好了,今天的分享就到這里,我們明天再見!

往期精彩

凌云KTV點歌系統功能簡介

2020-10-17

注意!在subList生成子列表之后,一定不要隨便更改原列表

2020-10-15

神奇!一行代碼實現刪除某集合下標20-30的元素

2020-10-14

‘小會計’的轉行之旅

2020-10-13

子列表只是原列表的一個視圖

2020-10-12

“半路出家”的程序猿怎么不被“熊”

2020-10-11

某同學工作之后的感悟

2020-10-10

點分享

點點贊

點在看

總結

以上是生活随笔為你收集整理的java中如何对汉字进行排序?的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。