java按拼音排序

Java如何实现拼音排序? 很明显,直接比较第一个字节就能发现“周瑜”小于“大都督”,因为54小于59,所以在排序结果中,“周瑜”排在了“大都督”的前面。排序的本质其实都一样,都是把字符转成特定的编码,然后比较编码的大小关系,那么有没有一种编码是按拼音来编码的呢?本质上是比较两个String的大小,小的排在前面,大的排在后面,那两个String默认是怎么比较大小的呢?很明显,结果不是拼音顺序,“大都督”应该要在最前面,那这种情况是按什么逻辑排的序呢?在我们国家,按拼音进行排序是很常见的需求,比如姓名,那如何按拼音进行排序呢? 阅读详情
import java.util.*;
import java.text.*;

public class SortPinyin {

    /**
     * @param args
     */
    public static void main(String[] args) {
        // TODO Auto-generated method stub
        Comparator cmp = Collator.getInstance(java.util.Locale.CHINA);
        String[] arr = { "张三","张A", "李四", "王五", "赵六", "F-16", "12345", "^%$%"};
        Arrays.sort(arr, cmp);
        for (int i = 0; i < arr.length; i++)
            System.out.println(arr[i]);
        System.out.println();
    }

}

关于中文英文混合排序javaDemo 一个简单的demo,关于中英文排序,一个java Demo 立即下载

相关推荐

coze+飞书多维表格,批量分析小红书笔记,关键还能获取图片(附保姆级教程)

通过coze工作流,一键同步小红书账号和笔记链接到飞书多维表格,效率飞升~

qq_24403067的博客 4176

java 中文排序。

关键字:java,排序,中文,pinyin4j,笔画,GBK,GB2312,拼音,代码点 1       问题提出 汉字排序不同于英文字母的排序,主要有两种排序方式:一种是按拼音首字母排序;一种是按笔画排序。大多数情况下是按拼音首字母排序。那汉字究竟怎样通过其拼音首字母排序呢?好在字符集帮我们解决了这个问题。 众所周知的包含汉字的字符集有gb2312和GBK,后者是前者的扩展。Gb2312在

laukaka的专栏 3263

MATLAB安装配置libsvm(附MinGW64配置)

首先声明版本,本人PC系统Windows10 64bit,matlab安装的2016b,libsvm安装的version3.2.21.首先需要下载libsvm包:从林教授的网站上下载: http://www.csie.ntu.edu.tw/~cjlin/libsvm/2.将libsvm3.2.2解压到matlab/toolbox目录下:解压后:D:\matlab2016b\toolbox\libs...

github_35807147的博客 4万+

java对于汉字的首字母排序,遇到生僻字时,不要使用Collator.getInstance(java.util.Locale.CHINESE),而要用com.ibm.icu.util.ULocale

1.对于数组的排序方法如下: String[] names = {"王林",  "杨宝", "李镇", "刘迪", "刘波"};   Arrays.sort(names, com.ibm.icu.text.Collator.getInstance(com.ibm.icu.util.ULocale.SIMPLIFIED_CHINESE));//升序;    System.out.print

fangletian1981的专栏 1万+

基于高精度三维机器视觉的新能源汽车锂电池表面缺陷检测

在机器视觉行业迅速发展的背景下,市场上提供了功能强大且种类齐全的3D相机系列,可以满足锂电池从电芯到模组各个工艺和工位的3D检测需求。

Hinyeung_Limited的博客 1135

Stanford CS230深度学习(一)

斯坦福CS230可以作为深度学习的入门课,最近我也在跟着看视频、完成编程作业。首先列出使用的资源链接,然后给出第一课的理解和编程作业的代码。 所有资料如下: 一、课程连接: b站课堂讲授版:Stanford CS230(吴恩达 深度学习 Deep Learning | Autumn 2018)(中英双字幕) (一共10个视频,每周一个,但是每个视频对应下面的配套视频较多) Coursera配套视...

weixin_44750583的博客 2382

java实现中文汉字按首字母排序

要实现汉字按首字母排序,主要是设置语言环境,如下语句设置语言环境: 这里用到了Collator类,此类实现了Comparator接口,用他的getInstance就可以用指定的语言环境来构造一个Collator对象: 然后用如下语句创建Comparator: Comparator<Object> com=Collator.getInstance(java.util.Locale.C...

qq_34412985的博客 1万+

(四) OpenClaw-Skill技能全面了解和自定义技能

OpenClaw Skills是提升AI代理功能性的关键模块。本文系统介绍了Skills的核心概念、获取渠道和创建方法。Skills作为标准化指令集合,能让OpenClaw从单纯理解升级为实际执行任务,相比传统System Prompt具有模块化、可复用等优势。用户可通过Clawhub官方商店、GitHub社区等渠道获取5700+现成技能,或按需开发自定义Skill。文章详细演示了创建"Hello World"示例技能的完整流程,包括编写Python脚本、配置SKILL.md文件、部署。

直到世界的尽头 8299

java对中文排序

第一种情况: Comparator cmp = Collator.getInstance(java.util.Locale.CHINA); String[] arr = { "张三", "李四", "王五", "刘六" }; Arrays.sort(arr, cmp); for (int i = 0; i System.out.println(arr[i]);

csh159的专栏 1731

实战:RK3568 Android14 点亮 LVDS 屏幕

4组数据 (D0~D3) + 1组时钟 (CLK)。最大支持 1280x800 @ 60Hz。8组数据 (Even03, Odd03) + 2组时钟。支持 1080P 及以上。/ {/* 背光与电源 *//** 关键配置:数据格式映射* 可选值: "jeida-18", "jeida-24", "vesa-24"* 6位屏选 xx-18, 8位屏选 xx-24* 颜色不对(偏色/底片效果)就换 VESA <-> JEIDA*/

qq_33427070的博客 1165

Google Earth Engine(GEE)——全球影像数据正确下载方式和注意事项

今天看到有人担心全球影像能不能下载的问题? 有时候我们会用到全球的数据,但是如何下载全球的数据呢? 首先如果没有全球的矢量边界我们会不会无法下载全球的数据,答案当然是可以的,因为我们在边界筛选的过程中filterBounds(),就是为了筛选边界,当我们不进行边界筛选的时候,自然而然默认的边界范围就是全球的,但是紧接着会面临其他两个问题:1如何下载?2如何在不缩小分辨率的情况下下载成功? 对于第一个问题我们如何下载?还是按照正常的逻辑利用export直接倒出到Google硬盘当中, 代码:

此星光明博客 3773

Collator实现中文排序

1.建一个中文排序的工具类 /** * 比较器工具类 */ public class ComparatorUtils { //当前环境设置成 CHINA 中文 private static Collator collator=Collator.getInstance(Locale.CHINA); public static int compare(String o1, String o2) { //调用内部的方法,进行比较。 return co

qq_39172525的博客 1402

【PyGIS】ERA5降雨蒸散发数据预处理

ERA5-LAND降雨蒸散发数据预处理

```On Earth, Be Water, By Coding``` 3146

java 实现汉语拼音排序

Java提供的Collator拼音排序中,发现“怡”字总排在最后解决方案如下: 实现Comparator接口,利用pinyin4j将要比较的字符串转化成相应的拼音字符串,然后再比较。 所需jar包:pinyin4j-2.5.0.jar;下载地址:http://pinyin4j.sourceforge.net/ Java代码 import java.util.Arrays; impo

Sun_Ru的博客 5203

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

java对中文排序_java对中文(拼音)进行排序

拼音排序拼音有好几种方式,其中最主要的是中华人民共和国的汉语拼音 Chinese Phonetic。对汉字的排序有两种:一种是宽松的,能够按拼音排序最常用的汉字,另一种是严格的,能够按拼音排序绝大部分大部分汉字。宽松的拼音排序法原理:汉字最早是GB2312编码,收录了六千多个汉字,是按拼音排序的,编码是连续的。 后来出现了GBK编码,对GB2312进行了扩展,到了两万多汉字,并且兼容GB2312,...

weixin_42513296的博客 1010

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

java sort 中文拼音排序

Java中文拼音排序 在Java中进行字符串排序是非常常见的操作,但是对于包含中文的字符串,排序可能会有一些特殊的需求。例如,我们可能需要按照中文拼音的顺序对字符串进行排序。本文将介绍在Java中如何实现中文拼音排序。 中文拼音排序原理 中文拼音排序是按照拼音字母的顺序对字符串进行排序。对于Java来说,我们可以使用Col...

weixin_36248959的博客 459

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

java 汉字 拼音排序_Java字符串按照汉语拼音排序

Java中字符编码是Unicode,在给汉字字符串排序时,并不是我们期望的按照汉语拼音排序。例如,语句System.out.println('龙'>'最')的结果是true,尽管'l'下载后将其中的pinyin4j-2.5.0.jar加到我们工程的Build Pathimport java.util.Comparator;import net.sourceforge.pinyin4j.Pin...

weixin_30328003的博客 672

Java汉字按照拼音排序

@Test  public void test_sort_pinyin() {      Collator cmp = Collator.getInstance(java.util.Locale.CHINA);      String[] arr = { "张三", "李四", "王五", "赵六", "JAVA", "123", "$%$#", "哈哈A",              "1哈哈A

英阿的博客 815

java按照汉字拼音首字母排序

实现按照汉字拼音字母排序的方法有两种: 一,就是在用java代码处理在这里插入代码片 要实现汉字按首字母排序,主要是设置语言环境,如下语句设置语言环境: 这里用到了Collator类,此类实现了Comparator接口,用他的getInstance就可以用指定的语言环境来构造一个Collator对象: 然后用如下语句创建Comparator: Comparator<Object> c...

wojiaohb的博客 6921

java 汉字按照拼音排序

数据库中按照拼音排序很简单 SELECT DISTINCT province_name, province_code FROM `metadata_township` ORDER BY convert(province_name USING gbk) asc 一般的排序都是能正确的,但是有的多音字啥的会有点差别,例如重庆,按理说是重是“chong”,但是排序的时候会按照“zhong”,就会排在靠后的。 Java中按照拼音排序 我的list里面是对象,对象里面含有需要按照拼音排序的字段name,我用

sout的博客 4717

java实现中英文按拼音排序

最近项目中需要将用户名按拼音顺序排序,在网上搜了一下,都是使用Comparator进行搜索的,但是如果只是用java.util.Locale.CHINESE或者java.util.Locale.CHINA进行排序的话,有些文字是会排序出错的。比如说"怡"字就会排在后面。后来继续找了找资料,发现有人用pinyin4j来实现排序,使用了之后发现不错,不过又发现将中文和英文混合排序之后,中文都是排在...

he7ning3的博客 1618

java拼音字符串的顺序_Java字符串按照汉语拼音排序

Java中字符编码是Unicode,在给汉字字符串排序时,并不是我们期望的按照汉语拼音排序。例如,语句System.out.println('龙'>'最')的结果是true,尽管'l'下载后将其中的pinyin4j-2.5.0.jar加到我们工程的Build Pathimport java.util.Comparator;import net.sourceforge.pinyin4j.Pin...

weixin_39665060的博客 176

java拼音排序

java拼音排序 彻底解决将汉字转化为拼音 实现中英文混合排序 pinyin4j(转) 前几天,朋友的项目中要用到中英文混合排序的功能,和我在MSN上讨论实现方法.恰逢端午节放假,我闲来无事,就把解决方法捣鼓出来了,希望能派上用场. 这是完整代码的下载地址:http://download.csdn.net/source/1362450 一共有三个类:PinyinComparat...

bote1juan的专栏 293

Java实现名字按拼音排序和多条件排序

Java实现名字按拼音排序和多条件排序 拼音排序 @Test public void nameSortTest() { String [] nameArray = {"张三", "李四", "李华", "王五", "张伟", "陈晨"}; List<String> nameList = new ArrayList<>(nameA...

十十办文武的博客 3168

java 汉字按拼音排序_Java当中汉字按照拼音排序

开发中碰到个小需求:需要对省按拼音排序。其实全国的省个数并不多,实在不行人肉排序也OK,不过这样就太挫了。网上查了下,发现原生JDK自带的解决方法如下:package com.taobao.test;import java.text.Collator;import java.util.ArrayList;import java.util.Arrays;import java.util.Compar...

weixin_34626572的博客 1155

java 拼音和数字双排序

借鉴网络其他文章,将汉字拼音和数字排序整合为一体, 代码或许有些冗余,但已是菜鸟的最大努力。

g56467467464的博客 369
上一篇: 第四届蓝桥杯预赛:打印十字图
下一篇: nyoj35 表达式求值
云一样飘过
博客等级 码龄14年 3粉丝 8原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值