试试这个比较,从而消除所有非数字字符然后将其余字符作为数字进行比较:

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中包含数字的字符串进行排序相关推荐

  1. golang 字符串随机数_在Go中生成随机数和字符串

    golang 字符串随机数 While completely random is not really possible, we still can have pseudorandom numbers ...

  2. [转载] python对列表单词排序_计算列表中单词的频率并按频率排序

    参考链接: Python程序按字母顺序对单词进行排序 您可以使用from collections import Counter 它支持Python 2.7,在这里信息 1.>>>c ...

  3. python合并列表并按升序排序_在python中按升序合并两个排序的链接列表:单链接列表指针更新问题...

    你需要分配 l1 和 l2 tempNode.val L1 节点本身到 tempNode # Definition for singly-linked list. class ListNode: de ...

  4. java.lang.IllegalArgumentException: 字符[_]在域名中永远无效。 at

    [http-nio-8080-exec-1] org.apache.coyote.AbstractProcessor.parseHost [xxx_tomcat] 是无效主机注意:更多的请求解析错误将 ...

  5. 【SQL开发实战技巧】系列(十二):三问(如何对字符串字母去重后按字母顺序排列字符串?如何识别哪些字符串中包含数字?如何将分隔数据转换为多值IN列表?)

    系列文章目录 [SQL开发实战技巧]系列(一):关于SQL不得不说的那些事 [SQL开发实战技巧]系列(二):简单单表查询 [SQL开发实战技巧]系列(三):SQL排序的那些事 [SQL开发实战技巧] ...

  6. java项目----教务管理系统_基于Java的教务管理系统

    java项目----教务管理系统_基于Java的教务管理系统 2022-04-22 18:18·java基础 最近为客户开发了一套学校用教务管理系统,主要实现学生.课程.老师.选课等相关的信息化管理功 ...

  7. 编程之美计算0到N中包含数字1的个数

    转自:http://blog.csdn.net/hongjuntu123/article/details/8743266 有这样一个函数f(n),对于任意正整数n,它表示从 0 到 n 之间出现&qu ...

  8. 在1至2019中,有多少个数的数位中包含数字9?

    在1至2019中,有多少个数的数位中包含数字9?注意,有的数中的数位中包含多个9,这个数只算一次.例如,1999这个数包含数字9,在计算只是算一个数. 答:在1至2019中,有544个数的数位中包含数 ...

  9. SQL语句批量去除、替换掉某列(字段)中包含的某个字符串

    原文链接: SQL语句批量去除.替换掉某列(字段)中包含的某个字符串,一并总结下列的增删改操作_Java Punk的博客-CSDN博客_sql删除包含某种字所有信息 以MySQL为例: 以下案例假设 ...

  10. 1至2019中,有多少个数的数位中包含数字9

    问题描述 在1至2019中,有多少个数的数位中包含数字9? 注意,有的数中的数位中包含多个9,这个数只算一次.例如,1999这个数包含数字9,在计算只是算一个数. 答案提交 这是一道结果填空的题,你只 ...

最新文章

  1. 迭代法移动盘子java,算法学习--日记(牛顿迭代法)
  2. 字符编码笔记:ASCII,Unicode和UTF-8(转) + BASE64
  3. UA PHYS515A 电磁理论V 电磁波与辐射9 简单辐射系统
  4. 献给开发者的大礼--打造CSDN论坛专用阅读器(电脑报2006年11月6日 第44期)
  5. sap 新建事务_SAP GUI里的收藏夹事务码管理工具
  6. pip报错Failed to establish a new connection: [Errno -3] Temporary failure in name resolution‘,)‘
  7. 【排序】LeetCode 75. Sort Colors
  8. play home tifa_144Hz OLED屏手机 努比亚Play喜提Android 11_手机通讯
  9. ad13批量安装元件库_别人的altium designer常用元件库和封装库下载-非常全面初学者有福了...
  10. ORACLE ASM 转自三思笔记
  11. idea git Untracked Files Prevent Pull
  12. 漏刻有时云守护数据可视化画质感知状态迭代说明文档
  13. Css3中添加-moz-, -webkit-, -o-,是什么意思呢?
  14. mouseover、mouseenter
  15. 2010年度总结-在淘宝的半年日子
  16. oracle ora00957,常见oracle错误代码ORA-xxxxx及其解决方法(持续更行中)
  17. 【Python应用】自制截图取词小工具-- 解锁文字识别新姿势
  18. UNOVO联永羲和开源项目
  19. 万字夜里爆肝,熬夜倾情奉献 Hive最最基础应用
  20. Linux 下的截屏并编辑的工具-flamshot安装及使用

热门文章

  1. 15. 发货选项(Shipping Options)
  2. win7 docker centos安装mysql_CentOS 7 使用docker安装mysql
  3. select机制的原理
  4. python 发送email邮件带附件
  5. JavaScript闭包函数的理解
  6. java中的缓冲流BufferedWriter和BufferedReader
  7. 用xslt 把xml转换成html的几个实例(1)
  8. JavaScript数组的某些操作(二)
  9. C++ 预编译头文件stdafx.h
  10. 24. Declear non-member functions when type conversions should apply to all parameters