java中文排序

Intouch间接变量(扩展) 间接变量只是Intouch提供给开发者的便捷方式之一,并不是所有情况都一定要使用间接变量,有时候用条件语句或者内存变量的方式也能起到类似的作用。 阅读详情

java中文排序

import java.text.CollationKey;
import java.text.Collator;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;

import com.google.common.collect.Lists;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.ToString;
import org.apache.commons.collections.CollectionUtils;
import org.junit.Test;

/**
 * @author sq
 * @Date 2019-10-10
 */
public class ChinaSortTest {

    @Test
    public void test() {

        UserInfo userInfo0 = UserInfo.builder().name("张三").age(11).build();
        UserInfo userInfo1 = UserInfo.builder().name("李四").age(12).build();
        UserInfo userInfo2 = UserInfo.builder().name("王五").age(13).build();
        UserInfo userInfo3 = UserInfo.builder().name("张哈哈").age(11).build();
        UserInfo userInfo4 = UserInfo.builder().name("李哈哈").age(11).build();
        UserInfo userInfo5 = UserInfo.builder().name("小强").age(11).build();
        List<UserInfo> userList = Lists.newArrayList(
            userInfo0,
            userInfo1,
            userInfo2,
            userInfo3,
            userInfo4,
            userInfo5);

        sortDistrictInfo(userList);

        System.out.println(userList);
    }

    /**
     * 排序
     * @param userInfos
     */
    private void sortDistrictInfo(List<UserInfo> userInfos) {
        if (CollectionUtils.isNotEmpty(userInfos)) {
            Collections.sort(userInfos, nameChina);
        }
    }

    /**
     * 中文比较器
     */
    private static Comparator<UserInfo> nameChina = new Comparator<UserInfo>() {

        Collator cmp = Collator.getInstance(java.util.Locale.CHINA);
        @Override
        public int compare(UserInfo d1, UserInfo d2) {
            String d1Name = d1.getName() == null ? "" : d1.getName();
            String d2Name = d2.getName() == null ? "" : d2.getName();
            CollationKey c1 = cmp.getCollationKey(d1Name);
            CollationKey c2 = cmp.getCollationKey(d2Name);
            return cmp.compare(c1.getSourceString(), c2.getSourceString());
        }
    };

}

@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
@ToString
class UserInfo {
    private String name;
    private Integer age;
}

结果:

[UserInfo(name=李哈哈, age=11), UserInfo(name=李四, age=12), UserInfo(name=王五, age=13), UserInfo(name=小强, age=11), UserInfo(name=张哈哈, age=11), UserInfo(name=张三, age=11)]

合成孔径雷达(SAR)的常见工作模式 随着星载SAR技术研究的深入发展,单一的条带模式已经无法满足当今时代的需求,因此许多新的工作模式相继被提出。这些新模式在分辨率和测绘宽度等方面都有所提高,接下来将简要介绍几种常用的工作模式。 阅读详情

相关推荐

基于用户的协同过滤算法(userCF)

1.定义 userCF:当一个用户A需要个性化推荐时,可以先找到和他有相似兴趣的其他用户,然后把那些用户喜欢的、而用户A没有听说过的物品推荐给A。这种方法称为基于用户的协同过滤算法。 基于用户的协同过滤算法主要包括两个步骤: 2.第一步:找到和目标用户兴趣相似的用户集合。 利用行为的相似度计算兴趣的相似度。给定用户u和用户v,令N(u)表示用户u曾经有过正反馈的物品集合,令N(v)为用户v曾经有过...

jiangdongxiaobawang的博客 1万+

Java对中文进行排序

Java对中文进行排序

Charge8的博客 8518

完美解决LBP2900打印机安装驱动提示无法识别USB及连接错误等问题(附Win11全新安装支持及卸载方案)

LBP2900打印机虽然经典老旧,但在Win11上依然可以完美使用!许多网上教程都无视安装失败后的问题,在此分享一种全新、100%有效的方法来解决驱动连接错误和无法识别USB设备的问题。无论是新安装还是卸载重装,这个方法都适用。本文整合了通用驱动包,支持Win2000到Win11系统,操作简单,轻松摆脱安装困扰,享受无忧打印体验!

心开始の未来~的博客 2万+

Java 如何对中文排序

字符串的 compareTo() 方法是不能对中文排序的,下面这个例子中的中文使用 compareTo() 方法排序后得到的是乱序 List<String> stringList = Arrays.asList("李四", "阿毛", "老王", "小李", "小董"); // 按照字符串排序 stringList.sort((x,y)->x.compareTo(y) ); stringList.forEach(System.out::println); //输出结果 小李 小董 李四

一起学编程 6685

ComfyUI入门学习-教程篇

深入的 ComfyUI 教程,不同功能节点的详细指南。一个比较有意思的Comfyui教程,动画式学习。从安装到基础教程、高级教程再到各种工作流。非常全面,有教程有搭建好的工作流。

wincyfu的博客 1334

千兆网口电路设计中的EMC防护与TVS选型实战

本文深入探讨了千兆网口电路设计中面临的EMC挑战,并提供了TVS二极管选型的实战指南。文章分析了ESD、浪涌和EFT等主要威胁,重点阐述了如何根据工作电压、钳位电压和关键的低结电容等参数为PHY芯片选择匹配的TVS器件,以确保在严苛电磁环境下实现可靠的信号完整性与防护。

m3n5b7v8c9x的博客 531

Java集合元素中中文的排序

需要说明的是,以上是在List中直接存放多个字符串后进行排序,如果是对象中某个属性是中文,将这类对象放到List中,也是能够进行排序的。

欧阳方超的专栏 2887

LCL滤波器参数设计实战:从理论约束到工程选型指南

本文提供了LCL滤波器参数设计的实战指南,从理论约束到工程选型逐步拆解。核心在于平衡总电感量、电感比与电容值,确保谐振频率落在安全区间,以满足并网电流谐波标准并维持系统稳定。文章以10kW并网逆变器为例,给出了具体的参数计算流程与选型步骤,并强调了寄生参数、阻尼设计等工程实现细节。

c6d7e8f9g的博客 924

Java中文排序完美新解

<span style="font-family:宋体;mso-ascii-font-family:"Times New Roman";mso-hansi-font-family:"Times New Roman"">关键字:java,排序,中文,pinyin4j,<span style="font-family:宋体;mso-ascii-font-family:"Times New

波希米亚的专栏 7351

Flink 运维监控与指标采集实战(Prometheus + Grafana 全流程)

Flink运维监控在实时计算场景中至关重要,因为Flink作业需要7×24小时稳定运行,对性能、资源、故障感知和状态变化的实时监控是保障系统稳定的关键。Flink自带的Metrics系统提供了基本的监控能力,但为了更全面的监控,Prometheus+Grafana成为最主流的解决方案。通过配置PrometheusReporter和Grafana仪表盘,可以实现对Flink作业的全面监控,包括CPU、内存、吞吐量、Checkpoint状态、KafkaSink性能等关键指标。此外,自定义指标采集和报警机制的配置

晴天彩虹雨的博客 1369

2026年3月GESP真题及题解(C++七级): 选择题和判断题(题解)

2026年3月GESP真题及题解(C++七级): 选择题和判断题(题解)

王老师青少年编程 992

【JAVA】中文我该怎么排序?

Java默认的字符串排序基于Unicode编码,无法正确处理中文拼音顺序。通过Collator类,可以按拼音顺序对中文字符串进行排序,并支持升序和降序排列。

我想写点儿啥,写点儿啥呢,就写点啥。 1071

2025机械考研复试面试问题汇总篇(含13门科目),考研机械复试专业面试常见重点问题总结!考研机械复试专业面试准备看这一篇就够了!

(完整版内容:)1.汇集了本科各科的重点知识及多个机械名校800多个常见问题,共8.7万字185页,涵盖机械所以专业课的重点知识和常见问答。 2.涉及机械大类重点科目,包括:材料力学、控制工程、数控技术、机械制造技术基础、理论力学、液压传动、机械设计、机械原理、工程材料、互换性与技术测量、测试技术、汽车理论、程序设计与C语言等13门必修课。

weixin_56510835的博客 1862

在java中使用TreeMap进行中文排序

版权声明:转载时请以超链接形式标明文章原始出处和作者信息及本声明 http://onbus.blogbus.com/logs/11628621.html 最近遇到需要按一个model中不同的列进行排序的问题,查了一下JDK API文档,发现,java中可以排序的工具类和接口共有五个SortedMap 、SortedSet、TreeMap 、TreeSet和Collect

MemRay 4620

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

java中文汉字排序

    转自 http://www.blogjava.net/caizh2009/archive/2010/12/17/340974.html java中文汉字排序 // Collator 类是用来执行区分语言环境的 String 比较的,这里选择使用CHINA          Comparator cmp = Collator.getInstance(java.util.L...

jiaohz的博客 864

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

java对中文排序_Java编程中如何实现中文排序

Java编程中如何实现中文排序在不断的Java学习中,我们就能发现在很多的时候还是有不少的技巧。下面YJBYS小编为大家整理了关于Java编程中如何实现中文排序的文章,希望对你有所帮助。第一种情况:Comparator cmp = Collator.getInstance(java.util.Locale.CHINA);String[] arr = { “张三”, “李四”, “王五”, “刘六”...

weixin_42461108的博客 854

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

Java中文排序

功能需求对集合对象按照几个字段进行排序,在MySQL中直接使用order by得到的结果并不是根据拼音排序   打算在代码中 处理,测试方法如下:   package com.dz; import java.text.Collator; import java.util.ArrayList; import java.util.Arrays; import java.util.Colle...

洋成林 1234

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

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

weixin_42513296的博客 1010

java中文姓名排序_java中文排序

对中文名称进行排序,不多说,上代码package test;/*** @Title: Person.java* @Copyright: Copyright (c) 2012-11-19* @Author : zhangzhao* @Version 0.1*/public class Person{private int id;priv...

weixin_34318945的博客 2108

Java中对中文进行字典排序

Java中对中文进行字典排序

weixin_43564783的博客 2693

中文排序 java_含中文的List列表按中文拼音排序的实现方式 Java

package com.zx.test;import java.text.Collator;import java.text.ParseException;import java.text.RuleBasedCollator;import java.util.Arrays;import java.util.Collections;import java.util.Comparator;import...

weixin_28692817的博客 579

java对中文排序_Java 中文排序

Java 中文排序/*对传入的向量进行排序(按照参与者姓名排序)*/ public Vector[] Sort(Vector vtID, Vector vtName) {Vector[] vt = {vtID, vtName};String exChangeID = null;String exChangeName = null;//Comparator cmp = Collato...

weixin_42568801的博客 345

java对中文排序_java对中文排序

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

weixin_32644319的博客 376

Java或者前端 实现中文排序(调API的Demo)

前端 Vue 中的中文排序通常使用 JavaScript 提供的 localeCompare 方法来比较中文字符串 Java 后端可以使用 Collator 类来实现中文排序

码农研究僧的博客 1383

java 中文 排序_JAVA集合按照中文排序

package ChineseSort;import java.util.Collection;import java.util.Iterator;import java.util.SortedMap;import java.util.TreeMap;public class TestSort {public static void main(String[] args) {CollatorCom...

weixin_39933484的博客 370
上一篇: Apache Commons-lang3提供的StopWatch执行时间监视器,以及Spring提供的StopWatch分析
下一篇: git本地分支与远程分支关联
code1Boy
博客等级 码龄10年 45粉丝 29原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值