一行代码搞定中文姓名排序
发表于|更新于
|浏览量:
上码!
两个参数分别为:一个字符串数组、一个接收比较器,以确定所述阵列的顺序
Collator是一个抽象基类,子类实现特定的整理策略。
1 | Arrays.sort(names, Collator.getInstance(java.util.Locale.CHINA)); |
完整代码如下:
1 | String[] names = {"张三", "李四", "王五", "赵六", "狂神", "阿超"}; |
输出结果:
1 | 阿超 |
相关推荐
2023-08-02
对接deepl翻译
富而不清白,不如贫而有名誉——弥尔顿 api文档如下,需要注意的是必须要绑定支付方式才能显示authKey: https://www.deepl.com/docs-api 代码如下: 12345678910111213141516171819202122232425262728293031import com.dtflys.forest.Forest;import lombok.val;import org.dromara.hutool.core.text.StrUtil;import org.dromara.streamquery.stream.core.collection.Lists;import org.dromara.streamquery.stream.core.stream.Steam;import java.util.List;import java.util.Objects;public class DeeplUtil { private static final DeeplProperties properties = SpringCont...
2021-03-05
避免list中remove导致ConcurrentModificationException
凡不是就着泪水吃过面包的人是不懂得人生之味的人——歌德 我们在list循环中调用remove函数删除自身元素可能会导致java.util.ConcurrentModificationException 例如 1234// 构造从0到20的listList<Integer> list = Stream.iterate(0, i -> ++i).limit(20).collect(Collectors.toList());// 删除list.forEach(list::remove); 首先我们可以使用removeIf代替 1list.removeIf(i -> i.equals(i)); 其次我们可以使用迭代器 我们可以看到removeIf的源码正是使用了迭代器 如下 12345Iterator<Integer> iterator = list.iterator();while (iterator.hasNext()) { Integer nowNumber = iterator.next(); iterator....
2025-02-20
HuTool告别Dromara,转型商业化背后的深层原因?
爱自己是终身浪漫的开始。——奥斯卡·王尔德的《理想的丈夫》 最近,开源界一个重磅新闻引发了广泛的讨论:HuTool宣布告别Dromara组织,正式转移到商业化公司账号。这一消息不仅震动了开源社区,也让我们开始反思开源项目的未来走向,特别是在商业化压力日益加剧的今天。 1. 开源的理想与现实:商业化的抉择在开源社区中,HuTool一直是一个备受推崇的项目。它以简洁、高效的工具库为开发者提供了大量的便利,尤其在Java开发者中间有着极高的声誉。HuTool本身在加入Dromara组织之前,已经有着强大的社区支持和广泛的使用群体。然而,随着项目的不断壮大,HuTool面临的一个问题越来越突出——资金与资源的匮乏。 尽管开源项目有其理想主义的成分,很多开源贡献者也抱有让技术回馈社会的想法,但在实际操作中,长期的开发与维护是需要大量资金与人力资源的。这就让许多曾经致力于开源的项目,最终不得不面对是否要转型为商业化项目的问题。HuTool的退出Dromara,正是一个标志性的事件。 2. 商业化的力量:如何平衡开源与盈利HuTool的转型并非孤例。近年来,越来越多的开源项目都在探索商业化...
2021-01-23
DTO、TO、VO、PO、DO、BO、AO、DAO、POJO
人的一生,应当像这美丽的花,自己无所求,而却给人间以美。——杨沫 之前一直有朋友问我Java中DTO、TO、VO、PO、DO、BO、AO、DAO、POJO这么多O到底是什么意思,看博客看不懂,有没有实际的例子 当然,这些O是出自《阿里Java开发手册》 POJO(Plain Ordinary Java Object): 在本规约中,POJO 专指只有 setter/getter/toString 的 简单类,包括 DO/DTO/BO/VO 等。 AO(Application Object): 阿里巴巴专指 Application Object,即在 Service 层上,极为贴近 业务的复用代码。 我就说说我的理解吧,顺带写点例子 这里就写个根据用户名、分页参数查询用户列表的例子吧 DTO(Data Transfer Object)数据传输对象 首先我们接口接参可以使用DTO,简单来说就是Controller中函数的参数,例如下面的PageDTO 12345678910111213141516171819@Data...
2023-03-23
dataCompare
真正的好人,是那个和所有的大家认为坏的人在一起的人。——纪伯伦 分享一个项目:https://gitee.com/dromara/data-compare 介绍dataCompare 是一个大数据数据比对和数据探测平台 (1)支持hive表数据比对,mysql、Doris 数据比对,实现自动化配置进行数据比对,避免频繁写sql 进行处理 (2)支持少量配置即可实现数据探测 对比结果展示:
2021-02-24
gson坑
一直只做自己会做的,就什么也做不成。最重要的是,你自己有没有兴趣——《碧蓝之海》 前两天使用Gson中遇到一个坑 同事使用 1Gson gson = new GsonBuilder().excludeFieldsWithoutExposeAnnotation().create(); 创建gson对象 所以到我这,出现了字段不序列化,或者反序列化不了的问题 例如下面这个类 1234567891011@Datapublic static class User implements Serializable { private static final long serialVersionUID = 509877226276918727L; @Expose private String firstName; @Expose(serialize = false) private String lastName; @Expose(serialize = false, deserialize = false) private Stri...
