小编典典

尝试使用此比较器,该比较器将删除所有非数字字符,然后将其余字符与数字进行比较:

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

  1. mysql储存字符串斜杠_MySQL列名中包含斜杠或者空格的处理方法

    今天客户那边遇到了一个比较奇葩的问题跑来问我,这个问题比较冷门,所以特别记录下. 问题描述 数据库的字段存在斜杠或者空格的时候,怎么用sql进行insert或者select操作. 问题解答 对于这种特 ...

  2. 中判断字符串是否为空_java中的数字以及如何判断字符串是不是数字

    01 前言 数字是计算机科学的根本,那么java中数字是怎样来表示呢?规则又是怎样呢?今天我们来探讨一下这个话题.数字在某些领域经常用字符串来进行表示和传递.那么我们可以从判断java中一个字符串是否 ...

  3. java sort()怎么实现的_Java中Array.sort()的排序原理

    People[]people={newPeople("小飞飞","2","2:41:28"),newPeople("小国" ...

  4. mysql数字_MySQL 中的数字类型

    MySQL 中数据类型常用的就三大类: 数字类型/numeric types 日期和时间/date and time types 字符类型/string (character and byte) ty ...

  5. java处理中文字符串_Java实现读取文章中重复出现的中文字符串

    在上个星期阿里巴巴一面的时候,最后面试官问我如何把一篇文章中重复出现的词或者句子找出来,当时太紧张,答的不是很好.今天有时间再来亲手实现一遍.其实说白了也就是字符串的处理,所以难度并不是很大. 以下是 ...

  6. c# 浮点数十六进制字符串_从C#中包含十六进制值的字符串数组中打印整数值...

    c# 浮点数十六进制字符串 将十六进制字符串数组转换为整数 (Converting array of hexadecimal strings to integers) Let suppose you ...

  7. java对象地址连续_Java面向对象中地址的理解(长期修改)

    写在前面:如果变量是基本数据类型,此时赋值的是变量所保存的数据值 如果变量是引用数据类型,此时赋值的是变量所保存的数据的地址值 Java中,引用数据类型定义的变量含有的值,不是null就是地址值(不包 ...

  8. java array 元素的位置_java中的两种排序工具Arrays和Collections的使用

    java中的排序工具主要是有两个Arrays和Collections.我们一个一个来讲解. 本来写好了每一种方法的测试代码,后来又给删了,因为我觉得如果想要去了解的话,可以直接查看这些常用的即可.因为 ...

  9. html的动态页面包含,在html页面中包含静态或动态页面方法

    1.可以用 download 行为下载后再用 innerHTML 特性显示出来. 具体步骤: style="behavior:url(#default#download)"> ...

  10. java数组排序法方法_JAVA数组中五种常见排序方法

    前言: 几种常用的JAVA数组排序方法的整合. 法一:Arrays.sort() Arrays.sort()排序方法在java中是最简单且最常用的排序方法 int []arr1= {45,34,59, ...

最新文章

  1. Linux下如何实现用户的集中管理(NIS服务器的高级配置)
  2. kafka数据文件.log
  3. java实现多路分发
  4. 配置计算机系统doc,[计算机系统配置实用程序.doc
  5. JSPs only permit GET POST or HEAD的解决方案(REST风格)
  6. virtualenv -- python虚拟沙盒
  7. Ceph测试工具总结
  8. 嵩天《Python网络爬虫与信息提取》实例1:Requests库网络爬虫实战5个实例
  9. wangeditor富文本编辑器的复制word到浏览器发生乱码
  10. 小程序微信登陆及账号绑定功能开发笔记
  11. 利用Powergui进行FFT Analysis,信号源为空解决方法
  12. 2021年2月程序员工资统计,平均15144元
  13. Frida-dexdump使用,frida环境配置
  14. (MIUI)小米手机录音丢失找回
  15. 微擎打开导航提示该网页无法正常运作
  16. 长白县积极建设精准扶贫云平台
  17. 【毕业设计】深度学习图像风格迁移算法研究与实现 - python 卷积神经网络
  18. spring security logout(spring security登出示例)
  19. CMOS图像传感器的曝光及读取时序
  20. 89c51电话按键c语言代码,基于AT89C51单片机电话拨号系统设计.docx

热门文章

  1. MySQL 查询数据表
  2. 审查元素找不到创建的元素_香奈儿除了珍珠,还有哪些你不知道的经典元素?答案在原文中找...
  3. 电脑上怎么扫二维码_微信里别人发给我的二维码怎么扫
  4. html中隐藏单元格上边框,HTML table 标签边框问题(隐藏表格边框、单元格边框等)...
  5. 1g等于多少mb计算机网络,手机流量1G等于多少MB ,如何产生,怎么节省
  6. HDU 3861 The King’s Problem (强连通缩点+DAG最小路径覆盖)
  7. __getattr__动态获取接口
  8. Codeforces-808D Array Division (multiset 折半???)
  9. Bugtags 2016-06-16 更新内容
  10. 查出数字字符字段中非数字字符的记录