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", "foo", "room2", "room100", "room10");
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 数字字符串排序_对Java中包含数字的字符串进行排序相关推荐
- golang 字符串随机数_在Go中生成随机数和字符串
golang 字符串随机数 While completely random is not really possible, we still can have pseudorandom numbers ...
- [转载] python对列表单词排序_计算列表中单词的频率并按频率排序
参考链接: Python程序按字母顺序对单词进行排序 您可以使用from collections import Counter 它支持Python 2.7,在这里信息 1.>>>c ...
- python合并列表并按升序排序_在python中按升序合并两个排序的链接列表:单链接列表指针更新问题...
你需要分配 l1 和 l2 tempNode.val L1 节点本身到 tempNode # Definition for singly-linked list. class ListNode: de ...
- java.lang.IllegalArgumentException: 字符[_]在域名中永远无效。 at
[http-nio-8080-exec-1] org.apache.coyote.AbstractProcessor.parseHost [xxx_tomcat] 是无效主机注意:更多的请求解析错误将 ...
- 【SQL开发实战技巧】系列(十二):三问(如何对字符串字母去重后按字母顺序排列字符串?如何识别哪些字符串中包含数字?如何将分隔数据转换为多值IN列表?)
系列文章目录 [SQL开发实战技巧]系列(一):关于SQL不得不说的那些事 [SQL开发实战技巧]系列(二):简单单表查询 [SQL开发实战技巧]系列(三):SQL排序的那些事 [SQL开发实战技巧] ...
- java项目----教务管理系统_基于Java的教务管理系统
java项目----教务管理系统_基于Java的教务管理系统 2022-04-22 18:18·java基础 最近为客户开发了一套学校用教务管理系统,主要实现学生.课程.老师.选课等相关的信息化管理功 ...
- 编程之美计算0到N中包含数字1的个数
转自:http://blog.csdn.net/hongjuntu123/article/details/8743266 有这样一个函数f(n),对于任意正整数n,它表示从 0 到 n 之间出现&qu ...
- 在1至2019中,有多少个数的数位中包含数字9?
在1至2019中,有多少个数的数位中包含数字9?注意,有的数中的数位中包含多个9,这个数只算一次.例如,1999这个数包含数字9,在计算只是算一个数. 答:在1至2019中,有544个数的数位中包含数 ...
- SQL语句批量去除、替换掉某列(字段)中包含的某个字符串
原文链接: SQL语句批量去除.替换掉某列(字段)中包含的某个字符串,一并总结下列的增删改操作_Java Punk的博客-CSDN博客_sql删除包含某种字所有信息 以MySQL为例: 以下案例假设 ...
- 1至2019中,有多少个数的数位中包含数字9
问题描述 在1至2019中,有多少个数的数位中包含数字9? 注意,有的数中的数位中包含多个9,这个数只算一次.例如,1999这个数包含数字9,在计算只是算一个数. 答案提交 这是一道结果填空的题,你只 ...
最新文章
- 迭代法移动盘子java,算法学习--日记(牛顿迭代法)
- 字符编码笔记:ASCII,Unicode和UTF-8(转) + BASE64
- UA PHYS515A 电磁理论V 电磁波与辐射9 简单辐射系统
- 献给开发者的大礼--打造CSDN论坛专用阅读器(电脑报2006年11月6日 第44期)
- sap 新建事务_SAP GUI里的收藏夹事务码管理工具
- pip报错Failed to establish a new connection: [Errno -3] Temporary failure in name resolution‘,)‘
- 【排序】LeetCode 75. Sort Colors
- play home tifa_144Hz OLED屏手机 努比亚Play喜提Android 11_手机通讯
- ad13批量安装元件库_别人的altium designer常用元件库和封装库下载-非常全面初学者有福了...
- ORACLE ASM 转自三思笔记
- idea git Untracked Files Prevent Pull
- 漏刻有时云守护数据可视化画质感知状态迭代说明文档
- Css3中添加-moz-, -webkit-, -o-,是什么意思呢?
- mouseover、mouseenter
- 2010年度总结-在淘宝的半年日子
- oracle ora00957,常见oracle错误代码ORA-xxxxx及其解决方法(持续更行中)
- 【Python应用】自制截图取词小工具-- 解锁文字识别新姿势
- UNOVO联永羲和开源项目
- 万字夜里爆肝,熬夜倾情奉献 Hive最最基础应用
- Linux 下的截屏并编辑的工具-flamshot安装及使用
热门文章
- 15. 发货选项(Shipping Options)
- win7 docker centos安装mysql_CentOS 7 使用docker安装mysql
- select机制的原理
- python 发送email邮件带附件
- JavaScript闭包函数的理解
- java中的缓冲流BufferedWriter和BufferedReader
- 用xslt 把xml转换成html的几个实例(1)
- JavaScript数组的某些操作(二)
- C++ 预编译头文件stdafx.h
- 24. Declear non-member functions when type conversions should apply to all parameters