{"id":50878412,"url":"https://github.com/ouyangpeng/ChineseStrokeSorting","last_synced_at":"2026-07-03T02:01:22.913Z","repository":{"id":40654943,"uuid":"156670141","full_name":"ouyangpeng/ChineseStrokeSorting","owner":"ouyangpeng","description":"中文笔划排序（中文笔画排序）、20902个汉字的笔画数目以及编码表。","archived":false,"fork":false,"pushed_at":"2018-12-10T03:28:36.000Z","size":11940,"stargazers_count":43,"open_issues_count":0,"forks_count":23,"subscribers_count":2,"default_branch":"master","last_synced_at":"2023-08-06T09:11:46.246Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"https://blog.csdn.net/ouyang_peng/article/details/83863693","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ouyangpeng.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2018-11-08T07:53:53.000Z","updated_at":"2023-05-27T12:26:16.000Z","dependencies_parsed_at":"2022-08-27T01:01:00.749Z","dependency_job_id":null,"html_url":"https://github.com/ouyangpeng/ChineseStrokeSorting","commit_stats":null,"previous_names":[],"tags_count":0,"template":null,"template_full_name":null,"purl":"pkg:github/ouyangpeng/ChineseStrokeSorting","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ouyangpeng%2FChineseStrokeSorting","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ouyangpeng%2FChineseStrokeSorting/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ouyangpeng%2FChineseStrokeSorting/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ouyangpeng%2FChineseStrokeSorting/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ouyangpeng","download_url":"https://codeload.github.com/ouyangpeng/ChineseStrokeSorting/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ouyangpeng%2FChineseStrokeSorting/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":35069183,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-07-03T02:00:05.635Z","response_time":110,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2026-06-15T12:00:25.796Z","updated_at":"2026-07-03T02:01:22.907Z","avatar_url":"https://github.com/ouyangpeng.png","language":"Java","funding_links":[],"categories":["人工智能"],"sub_categories":["自然语言处理"],"readme":"# ChineseStrokeSorting\n中文笔划排序，博客介绍链接为： https://blog.csdn.net/ouyang_peng/article/details/83863693\n\n关于Android实现 中文拼音排序以及中文笔划排序和英文排序Demo，参考博客介绍链接：https://blog.csdn.net/ouyang_peng/article/details/84109727\n\ngithub地址：https://github.com/ouyangpeng/ChinesePinyinSortAndStrokeSort\n\n\n# demo \n\n## 测试 StringStrokeComparator\n\n```java\n\npackage com.oyp.csdn.test;\n\nimport java.util.ArrayList;\nimport java.util.Collections;\nimport java.util.List;\n\nimport com.junfeng.strokesort.comparator.StringStrokeComparator;\n\npublic class TestStringStrokeComparator {\n\n    public static void main(String[] args) {\n        List\u003cString\u003e name = new ArrayList\u003cString\u003e();\n        name.add(\"欧阳鹏\");\n        name.add(\"阿森松島\");\n        name.add(\"安道爾\");\n        name.add(\"阿拉伯聯合大公國\");\n        name.add(\"阿富汗\");\n        name.add(\"安地卡及巴布達\");\n        name.add(\"安圭拉\");\n        name.add(\"阿爾巴尼亞\");\n        name.add(\"亞美尼亞\");\n        name.add(\"安哥拉\");\n        name.add(\"南極洲\");\n        name.add(\"阿根廷\");\n        name.add(\"美屬薩摩亞\");\n        name.add(\"奧蘭群島\");\n        name.add(\"波士尼亞赫塞哥維納\");\n        name.add(\"巴林\");\n        name.add(\"聖巴泰勒米\");\n        name.add(\"汶萊\");\n        name.add(\"玻利維亞\");\n        name.add(\"聖克里斯多福及尼維斯\");\n        name.add(\"朝鮮\");\n        name.add(\"韓國\");\n        name.add(\"科威特\");\n        name.add(\"開曼群島\");\n        name.add(\"哈薩克\");\n        name.add(\"寮國\");\n        name.add(\"黎巴嫩\");\n        name.add(\"聖露西亞\");\n        name.add(\"薩爾瓦多\");\n        name.add(\"馬約特\");\n        name.add(\"台灣（中國）\");\n        name.add(\"香港（中國）\");\n        name.add(\"澳門（中國）\");\n        name.add(\"蘇丹\");\n\n        //添加部分 生僻字\n        name.add(\"嘣\");\n        name.add(\"嚋\");\n        name.add(\"蘇丹\");\n        name.add(\"哜\");\n        name.add(\"囆\");\n        name.add(\"囎\");\n        name.add(\"囼\");\n        name.add(\"圀\");\n        name.add(\"壝\");\n        name.add(\"壝\");\n        name.add(\"墪\");\n        name.add(\"夨\");\n        name.add(\"夒\");\n        name.add(\"孅\");\n        name.add(\"孏\");\n        name.add(\"孆\");\n        name.add(\"媘\");\n        name.add(\"孑\");\n        name.add(\"孒\");\n        name.add(\"孓\");\n        name.add(\"孖\");\n        name.add(\"孠\");\n        name.add(\"孧\");\n        name.add(\"滽\");\n        name.add(\"滽\");\n        name.add(\"瀶\");\n        name.add(\"瀶\");\n        name.add(\"犪\");\n        name.add(\"犓\");\n        name.add(\"犫\");\n\n        /** 使用 */\n        Collections.sort(name, new StringStrokeComparator());\n        for (String string : name) {\n            System.out.println(string);\n        }\n    }\n}\n```\n\n测试结果\n\n\n```\n孑\n孒\n孓\n夨\n巴林\n台灣（中國）\n孖\n安圭拉\n安地卡及巴布達\n安哥拉\n安道爾\n汶萊\n阿拉伯聯合大公國\n阿根廷\n阿富汗\n阿森松島\n阿爾巴尼亞\n亞美尼亞\n囼\n孠\n孧\n欧阳鹏\n波士尼亞赫塞哥維納\n南極洲\n哈薩克\n哜\n圀\n玻利維亞\n科威特\n美屬薩摩亞\n香港（中國）\n馬約特\n媘\n朝鮮\n開曼群島\n聖巴泰勒米\n聖克里斯多福及尼維斯\n聖露西亞\n嘣\n奧蘭群島\n滽\n滽\n犓\n墪\n寮國\n澳門（中國）\n黎巴嫩\n薩爾瓦多\n嚋\n韓國\n壝\n壝\n夒\n蘇丹\n蘇丹\n孅\n孆\n瀶\n瀶\n囆\n囎\n孏\n犪\n犫\n\n```\n\n\n## 测试 ObjectStrokeComparator\n\n代码\n\n```java\npackage com.oyp.csdn.test;\n\nimport java.util.ArrayList;\nimport java.util.Collections;\nimport java.util.List;\n\nimport com.junfeng.strokesort.comparator.ObjectStrokeComparator;\nimport com.junfeng.strokesort.model.Stroke;\n\npublic class TestObjectStrokeComparator {\n\n\tpublic static void main(String[] args) {\n\t\tList\u003cStroke\u003e strokes = new ArrayList\u003cStroke\u003e();\n\t\tStroke stroke1 = new Stroke();\n\t\tstroke1.setName(\"张三无\");\n\t\tstrokes.add(stroke1);\n\t\tstroke1 = new Stroke();\n\t\tstroke1.setName(\"赵明红匠\");\n\t\tstrokes.add(stroke1);\n\t\tstroke1 = new Stroke();\n\t\tstroke1.setName(\"李四\");\n\t\tstrokes.add(stroke1);\n\t\tstroke1 = new Stroke();\n\t\tstroke1.setName(\"王东栋\");\n\t\tstrokes.add(stroke1);\n\t\tstroke1 = new Stroke();\n\t\tstroke1.setName(\"李四仨\");\n\t\tstrokes.add(stroke1);\n\t\tstroke1 = new Stroke();\n\t\tstroke1.setName(\"张三\");\n\t\tstrokes.add(stroke1);\n\t\tstroke1 = new Stroke();\n\t\tstroke1.setName(\"欧阳鹏\");\n\t\tstrokes.add(stroke1);\n\t\t\n\t\t/** 使用 */\n\t\tCollections.sort(strokes, new ObjectStrokeComparator(Stroke.class, \"name\"));\n\n\t\tfor (Stroke stroke : strokes) {\n\t\t\tSystem.out.println(stroke.getName());\n\t\t}\n\n\t\tSystem.out.println(\"----------\");\n\n\t\tList\u003cCountryOrRegion\u003e countryOrRegionArrayList = new ArrayList\u003cCountryOrRegion\u003e();\n\t\tCountryOrRegion countryOrRegion = new CountryOrRegion();\n\t\tcountryOrRegion.setName(\"阿森松島\");\n\t\tcountryOrRegionArrayList.add(countryOrRegion);\n\t\tcountryOrRegion = new CountryOrRegion();\n\t\tcountryOrRegion.setName(\"安道爾\");\n\t\tcountryOrRegionArrayList.add(countryOrRegion);\n\t\tcountryOrRegion = new CountryOrRegion();\n\t\tcountryOrRegion.setName(\"聖克里斯多福及尼維斯\");\n\t\tcountryOrRegionArrayList.add(countryOrRegion);\n\t\tcountryOrRegion = new CountryOrRegion();\n\t\tcountryOrRegion.setName(\"阿爾巴尼亞\");\n\t\tcountryOrRegionArrayList.add(countryOrRegion);\n\t\tcountryOrRegion = new CountryOrRegion();\n\t\tcountryOrRegion.setName(\"美屬薩摩亞\");\n\t\tcountryOrRegionArrayList.add(countryOrRegion);\n\n\t\t/** 使用 */\n\t\tCollections.sort(countryOrRegionArrayList, new ObjectStrokeComparator(CountryOrRegion.class, \"name\"));\n\t\tfor (CountryOrRegion countryOrRegionItem : countryOrRegionArrayList) {\n\t\t\tSystem.out.println(countryOrRegionItem.getName());\n\t\t}\n\n\t\tSystem.out.println(\"----------\");\n\t\t\n\t\tList\u003cString\u003e name = new ArrayList\u003cString\u003e();\n\t\tname.add(\"阿森松島\");\n\t\tname.add(\"安道爾\");\n\t\tname.add(\"阿拉伯聯合大公國\");\n\t\tname.add(\"阿富汗\");\n\t\tname.add(\"安地卡及巴布達\");\n\t\tname.add(\"安圭拉\");\n\t\tname.add(\"阿爾巴尼亞\");\n\t\tname.add(\"亞美尼亞\");\n\t\tname.add(\"安哥拉\");\n\t\tname.add(\"南極洲\");\n\t\tname.add(\"阿根廷\");\n\t\tname.add(\"美屬薩摩亞\");\n\t\tname.add(\"奧蘭群島\");\n\t\tname.add(\"波士尼亞赫塞哥維納\");\n\t\tname.add(\"巴林\");\n\t\tname.add(\"聖巴泰勒米\");\n\t\tname.add(\"汶萊\");\n\t\tname.add(\"玻利維亞\");\n\t\tname.add(\"聖克里斯多福及尼維斯\");\n\t\tname.add(\"朝鮮\");\n\t\tname.add(\"韓國\");\n\t\tname.add(\"科威特\");\n\t\tname.add(\"開曼群島\");\n\t\tname.add(\"哈薩克\");\n\t\tname.add(\"寮國\");\n\t\tname.add(\"黎巴嫩\");\n\t\tname.add(\"聖露西亞\");\n\t\tname.add(\"薩爾瓦多\");\n\t\tname.add(\"馬約特\");\n\t\tname.add(\"台灣（中國）\");\n\t\tname.add(\"香港（中國）\");\n\t\tname.add(\"澳門（中國）\");\n\t\tname.add(\"蘇丹\");\n\t\t/** 使用 */\n\t\tCollections.sort(name, new ObjectStrokeComparator(String.class, null));\n\n\t\tfor (String string : name) {\n\t\t\tSystem.out.println(string);\n\t\t}\n\t}\n}\n\n```\n\n测试结果\n\n```\n王东栋\n张三\n张三无\n李四\n李四仨\n欧阳鹏\n赵明红匠\n----------\n安道爾\n阿森松島\n阿爾巴尼亞\n美屬薩摩亞\n聖克里斯多福及尼維斯\n----------\n巴林\n台灣（中國）\n安圭拉\n安地卡及巴布達\n安哥拉\n安道爾\n汶萊\n阿拉伯聯合大公國\n阿根廷\n阿富汗\n阿森松島\n阿爾巴尼亞\n亞美尼亞\n波士尼亞赫塞哥維納\n南極洲\n哈薩克\n玻利維亞\n科威特\n美屬薩摩亞\n香港（中國）\n馬約特\n朝鮮\n開曼群島\n聖巴泰勒米\n聖克里斯多福及尼維斯\n聖露西亞\n奧蘭群島\n寮國\n澳門（中國）\n黎巴嫩\n薩爾瓦多\n韓國\n蘇丹\n```\n\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fouyangpeng%2FChineseStrokeSorting","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fouyangpeng%2FChineseStrokeSorting","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fouyangpeng%2FChineseStrokeSorting/lists"}