java字符串包含连续数字,Java中包含数字的排序字符串
小编典典
尝试使用此比较器,该比较器将删除所有非数字字符,然后将其余字符与数字进行比较:
Collections.sort(strings, new Comparator() {
public int compare(String o1, String o2) {
return extractInt(o1) - extractInt(o2);
}
int extractInt(String s) {
String num = s.replaceAll("\\D", "");
// return 0 if no digits found
return num.isEmpty() ? 0 : Integer.parseInt(num);
}
});
这是一个测试:
public static void main(String[] args) throws IOException {
List strings = Arrays.asList("room1.2", "foo1.1", "foo", "room2.3", "room100.999", "room10", "room.3");
Collections.sort(strings, new Comparator() {
public int compare(String o1, String o2) {
return extractInt(o1) - extractInt(o2);
}
int extractInt(String s) {
String num = s.replaceAll("\\D", "");
// return 0 if no digits found
return num.isEmpty() ? 0 : Integer.parseInt(num);
}
});
System.out.println(strings);
}
输出:
[foo, room1, room2, room10, room100]
当数字为小数时(也表示Java 8+样式):
public static void main(String[] args) {
List strings = Arrays.asList("room1.2", "foo1.1", "room2.3", "room100.999", "room10", "room.3");
Collections.sort(strings, Comparator.comparing(Application::extractDouble));
System.out.println(strings);
}
static double extractDouble(String s) {
String num = s.replaceAll("[^\\d.]", "");
// return 0 if no digits found
return num.isEmpty() ? 0 : Double.parseDouble(num);
}
结果:
[foo, room.3, foo1.1, room1.2, room2.3, room10, room100.999]
2020-09-08
java字符串包含连续数字,Java中包含数字的排序字符串相关推荐
- mysql储存字符串斜杠_MySQL列名中包含斜杠或者空格的处理方法
今天客户那边遇到了一个比较奇葩的问题跑来问我,这个问题比较冷门,所以特别记录下. 问题描述 数据库的字段存在斜杠或者空格的时候,怎么用sql进行insert或者select操作. 问题解答 对于这种特 ...
- 中判断字符串是否为空_java中的数字以及如何判断字符串是不是数字
01 前言 数字是计算机科学的根本,那么java中数字是怎样来表示呢?规则又是怎样呢?今天我们来探讨一下这个话题.数字在某些领域经常用字符串来进行表示和传递.那么我们可以从判断java中一个字符串是否 ...
- java sort()怎么实现的_Java中Array.sort()的排序原理
People[]people={newPeople("小飞飞","2","2:41:28"),newPeople("小国" ...
- mysql数字_MySQL 中的数字类型
MySQL 中数据类型常用的就三大类: 数字类型/numeric types 日期和时间/date and time types 字符类型/string (character and byte) ty ...
- java处理中文字符串_Java实现读取文章中重复出现的中文字符串
在上个星期阿里巴巴一面的时候,最后面试官问我如何把一篇文章中重复出现的词或者句子找出来,当时太紧张,答的不是很好.今天有时间再来亲手实现一遍.其实说白了也就是字符串的处理,所以难度并不是很大. 以下是 ...
- c# 浮点数十六进制字符串_从C#中包含十六进制值的字符串数组中打印整数值...
c# 浮点数十六进制字符串 将十六进制字符串数组转换为整数 (Converting array of hexadecimal strings to integers) Let suppose you ...
- java对象地址连续_Java面向对象中地址的理解(长期修改)
写在前面:如果变量是基本数据类型,此时赋值的是变量所保存的数据值 如果变量是引用数据类型,此时赋值的是变量所保存的数据的地址值 Java中,引用数据类型定义的变量含有的值,不是null就是地址值(不包 ...
- java array 元素的位置_java中的两种排序工具Arrays和Collections的使用
java中的排序工具主要是有两个Arrays和Collections.我们一个一个来讲解. 本来写好了每一种方法的测试代码,后来又给删了,因为我觉得如果想要去了解的话,可以直接查看这些常用的即可.因为 ...
- html的动态页面包含,在html页面中包含静态或动态页面方法
1.可以用 download 行为下载后再用 innerHTML 特性显示出来. 具体步骤: style="behavior:url(#default#download)"> ...
- java数组排序法方法_JAVA数组中五种常见排序方法
前言: 几种常用的JAVA数组排序方法的整合. 法一:Arrays.sort() Arrays.sort()排序方法在java中是最简单且最常用的排序方法 int []arr1= {45,34,59, ...
最新文章
- Linux下如何实现用户的集中管理(NIS服务器的高级配置)
- kafka数据文件.log
- java实现多路分发
- 配置计算机系统doc,[计算机系统配置实用程序.doc
- JSPs only permit GET POST or HEAD的解决方案(REST风格)
- virtualenv -- python虚拟沙盒
- Ceph测试工具总结
- 嵩天《Python网络爬虫与信息提取》实例1:Requests库网络爬虫实战5个实例
- wangeditor富文本编辑器的复制word到浏览器发生乱码
- 小程序微信登陆及账号绑定功能开发笔记
- 利用Powergui进行FFT Analysis,信号源为空解决方法
- 2021年2月程序员工资统计,平均15144元
- Frida-dexdump使用,frida环境配置
- (MIUI)小米手机录音丢失找回
- 微擎打开导航提示该网页无法正常运作
- 长白县积极建设精准扶贫云平台
- 【毕业设计】深度学习图像风格迁移算法研究与实现 - python 卷积神经网络
- spring security logout(spring security登出示例)
- CMOS图像传感器的曝光及读取时序
- 89c51电话按键c语言代码,基于AT89C51单片机电话拨号系统设计.docx
热门文章
- MySQL 查询数据表
- 审查元素找不到创建的元素_香奈儿除了珍珠,还有哪些你不知道的经典元素?答案在原文中找...
- 电脑上怎么扫二维码_微信里别人发给我的二维码怎么扫
- html中隐藏单元格上边框,HTML table 标签边框问题(隐藏表格边框、单元格边框等)...
- 1g等于多少mb计算机网络,手机流量1G等于多少MB ,如何产生,怎么节省
- HDU 3861 The King’s Problem (强连通缩点+DAG最小路径覆盖)
- __getattr__动态获取接口
- Codeforces-808D Array Division (multiset 折半???)
- Bugtags 2016-06-16 更新内容
- 查出数字字符字段中非数字字符的记录