一行代码搞定中文姓名排序
发表于|更新于
|浏览量:
上码!
两个参数分别为:一个字符串数组、一个接收比较器,以确定所述阵列的顺序
Collator是一个抽象基类,子类实现特定的整理策略。
1 | Arrays.sort(names, Collator.getInstance(java.util.Locale.CHINA)); |
完整代码如下:
1 | String[] names = {"张三", "李四", "王五", "赵六", "狂神", "阿超"}; |
输出结果:
1 | 阿超 |
相关推荐
2021-04-30
Optional没有peek函数?自己写一个
好动与不满足是进步第一必需品。——爱迪生 我发现Optional竟然没有类似于Stream里的peek函数 那我就只好自己写一个了。。。 但Optional由final修饰没法继承,那我复制一个出来改个名字好了 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516...
2024-01-06
like concat 兼容h2、mysql、pgsql语法
推动你的事业,不要让你的事业推动你。——爱因斯坦 今天解决 https://github.com/apache/incubator-streampark/issues/3451 时候发现从'%${variable.variableCode}%'改为concat ('%', #{variable.variableCode}, '%') 解决的sql注入问题与postgresql不兼容 于是加了一个CAST解决 https://github.com/apache/incubator-streampark/pull/3457 concat('%', CAST(#{variable.variableCode} AS CHAR), '%') 这样就兼容了h2、mysql和pgsql 这里测试时候首先本地运行h2跑一下,然后用docker启动一个mysql跑一下: 1docker run --name streampark-mysql -e MYSQL_ROOT_PASSWORD=streampark -e ...
2024-08-31
Disruptor
有教养的头脑的第一个标志就是善于提问。——普列汉诺夫 官方文档: LMAX Disruptor github: GitHub - LMAX-Exchange/disruptor: High Performance Inter-Thread Messaging Library Disruptor是由LMAX Exchange开发的一个高性能并发框架,专门用于处理需要低延迟和高吞吐量的场景。与传统的队列模型相比,Disruptor通过无锁的环形缓冲区实现了极高的性能,适合用在对性能要求苛刻的金融交易系统、日志处理系统等领域。 Disruptor的核心概念 Disruptor框架的核心组件包括: RingBuffer: 环形缓冲区,用于存储事件。它的大小是2的幂次方,以便利用位运算进行快速计算。 Event: 事件对象,代表要处理的数据单元。 Producer: 生产者,负责将事件发布到RingBuffer中。 Consumer: 消费者,从RingBuffer中获取事件并处理。 这些组件协同工作,形成一个高效的数据处理流水线。 引入依赖: 12345<depe...
2021-01-05
Optional再扩展
他们之所以做得到,就因为他们认为他们能够做到。—— 维吉尔 关于Optional的介绍,之前的博客已经说过了,这里就不再赘述 这里写点常用的例子 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970package com.ruben;import java.util.*;import java.util.concurrent.atomic.AtomicBoolean;import java.util.function.Supplier;import java.util.stream.Stream;/** * @ClassName: OptionalDemo * @Description: 我还没有写描述 * @Date: 2021/1/5 0005 20:47 * * * @author: <achao1441470436@gmail.com> * @ver...
2023-11-14
webclient模板变量
过于重视行为规则、拘泥形式,往往在事业上错失良机。——培根 今天分享在使用webclient进行开发时的的一个小技巧 例如这个方法: 1org.springframework.web.reactive.function.client.DefaultWebClient.DefaultRequestBodyUriSpec#uri(java.lang.String, java.lang.Object...) 此处如果直接使用: 1webClient.get().uri("/dev/v1/kicking-rule?appid={}", appId) 或者 1webClient.get().uri("/dev/v1/kicking-rule?appid=%s", appId) 哪怕 1webClient.get().uri("/dev/v1/kicking-rule?appid=%s", appId) 都是不行的。。。 正确的方式应该是: 1webClient.get().uri("/de...
2023-10-20
spring3 springfox报错Type javax.servlet.http.HttpServletRequest not present
相信一切,失望有日;怀疑一切,收获天明。——乔·赫伯特 就像这个issue里描述的一样: https://github.com/springfox/springfox/issues/4061 在springboot3.0引入: 12345 <dependency> <groupId>io.springfox</groupId> <artifactId>springfox-boot-starter</artifactId> <version>3.0.0</version></dependency> 引入完毕后发现启动报错。。。于是查询了下 最后一次更新是三年前。。。 https://central.sonatype.com/artifact/io.springfox/springfox-boot-starter/versions 相对的springboot3是去年出的 https://central.sonatype.com/artifa...

阿超
我的名字叫阿超 年龄25岁 家在北京市 职业是软件开发 每天最晚也会在八点前回家 不抽烟 酒浅尝辄止 晚上十二点上床 保证睡足八个小时 睡前写一篇博客 再做二十分钟俯卧撑暖身 然后再睡觉 基本能熟睡到天亮 像婴儿一样不留下任何疲劳和压力 就这样迎来第二天的早晨 健康检查结果也显示我很正常 我想说明我是一个不论何时都追求内心平稳的人 不拘泥于胜负 不纠结于烦恼 不树立使我夜不能寐的敌人 这就是我在这社会的生活态度
Follow Me公告
This is my Blog