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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/574947.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

MyEclipse的Debug模式

在MyEclipse中使用debug模式 1, 首先在一个java文件中设断点,然后运行,当程序走到断点处就会转到debug视图下, 2, F5键与F6键均为单步调试,F5是step into,也就是进入本行代码中执行,F6是step over, 也就是执…

redis setnx 分布式锁_Redis 分布式锁PHP

Redis 分布式锁的作用在单机环境下,有个秒杀商品的活动,在短时间内,服务器压力和流量会陡然上升。这个就会存在并发的问题。想要解决并发需要解决一下问题1、提高系统吞吐率也就是qps 每秒处理的请求书解决问题一:采用内存型数据库…

mysql备份至本地,mysql备份(本地+远程)

整体规划生产环境的mysql数据库,应当每日进行备份,并对较远之前的备份进行删除,由于担心mysql服务器本身崩溃,因此需要考虑将备份的文件同时保存到其他服务器,这样能提高数据安全。备份的方式使用mysqldump&#xff0c…

WinForm窗体自适应分辨率

我们自己编写程序的界面,会遇到各种屏幕分辨率,只有自适应才能显的美观。实际上,做到这点也很简单,就是首先记录窗体和它上面控件的初始位置和大小,当窗体改变比例时,其控件的位置和大小也按此比例变化即可…

ping端口_干货分享:shell脚本批量telnet ip 端口

问1:亲,请教个问题,我这边有200台服务器,怎么看它是否在线呢?答:简单,下载个PingInfoView直接批量ping下,能ping通的就在线,反之离线。问2:那怎么看我这200台…

关于PHP代码的开始和结束标签书写,关于PHP结束标签?gt;的使用细节

当PHP解析一个文件时,会寻找开始,标记告诉PHP开始和停止解释其中的代码。此种方式的解析可以使PHP嵌入到各种不同的文档中,凡是在一对开始和结束标记之外的内容都会被PHP解析器忽略。大多数情况下PHP都是嵌入在HTML文档中的。单行注释仅仅注释…

IIS 7.0 部署MVC

开发的MVC 3.0 项目,在部署服务上还是与需要花一点功夫,这里把遇到的问题罗列出来。 本文主要介绍IIS 7.5中安装配置MVC 3.0的具体办法! 部署必备: Microsoft .net FrameWork 4.0安装包 安装ASP.NET MVC 3.0 如果 Asp.NET v4.0.30…

python 爬虫 包_Python爬虫包BeautifulSoup实例(三)

一步一步构建一个爬虫实例,抓取糗事百科的段子先不用beautifulsoup包来进行解析第一步,访问网址并抓取源码# -*- coding: utf-8 -*-# Author: HaonanWu# Date: 2016-12-22 16:16:08# Last Modified by: HaonanWu# Last Modified time: 2016-12-22 20:17:…

phpdesigner8 php7.0,大家千万别用PHPDesigner8 的项目替换,多说是泪,改整个站点中!

PHP PHPDesigner 项目 替换 乱码 大家千万别用PHPDesigner8 的项目替换,多说是泪,改整个站点中!整个项目中文全是乱码,部分文件UTF-8编码变成ANSI编码,不知道有没有大神教我怎么还原回复讨论(解决方案)没有用svn么?没有的话碰上这种问题真的是蛋痛.没有用svn么&…

python 日志不会按照日期分割_python实现日志按天分割

本文实例为大家分享了python实现日志按天分割的具体代码,供大家参考,具体内容如下日志格式:1.1.1.1 - - [30/Apr/2015:00:34:55 0800] “POST /iDataService/services/MemRoomService HTTP/1.0” 200 405 “-” “Axis/1.4” “-”1.1.1.1 - …

如何分析网站日志文件

很多新手站长对于如何分析网站日志文件一筹莫展,打开.log日志文件看到的只有密密麻麻的数字和字母,细看能看出是什么含义,但是想要系统科学的去进行分析太耗时间,这时一般只能借助于第三方日志分析软件,而下面介绍一种…

不是有效的函数或过程名_过程和函数

VBA代码有两种组织形式,一种是过程,另一种就是函数。其实过程和函数有很多相同之处,除了使用的关键字不同之外,还有不同的是:函数有返回值,过程没有。函数可以在Access窗体,查询中像一般的Acces…

怎么下载php源文件,设计了一个php下载当前文件,却把php源文件下载下来了,为何?...

当我点a.txt下载后,打开txt文件,发现里面的内容不是a.txt本身的内容,而是该php文件中除了php代码的其他文本内容,这样该如何解决?资料下载回复讨论(解决方案)$file_name”a.txt”;$file_dir”./”;if(!file_exists($fi…

自己构造构造函数

/*** description 扩展function的原型* function* obj this的上下文*/if(!Function.prototype.bind){Function.prototype.bind function(obj){var slice [].slice,args slice.call(arguments,1),self this,nop function(){},bound function(){return self.apply(this ins…

浏览器快捷键_浏览器快捷键,让你事半功倍

随着互联网时代的发展,手机、电脑已经成为人们生活中不可或缺得一部分,无论是生活还是工作。尤其是办公室族,几乎每天都要面对电脑7/8个小时,查找各种信息或者浏览新闻,浏览器无可厚非的成为了装机必备的软件&#xff…

java f.lenth返回值,这个是什么意思,求仔细说明

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼import java.io.File;import java.io.IOException;import java.util.Random;import java.util.Scanner;public class Test {boolean flagtrue;int count;String word;public static void main(String[] args) {Test t new Test();…

MySQL中的常用函数

1、 字符串函数 2、 字符串函数 模数和被模数任何一个为NULL结果都为NULL。 3、 日期和时间函数 4、 流程函数 5、其他常用函数 MySQL Administrator(图形化管理工具) MySQL Query Brower(客户端查询工具) phpMyAdmin(…

小程序iconfont报错_【经验】开发微信小程序经验总结

一.技术要求(语言方面)有H5或H4和CSS3的书写经验,没有建议观看B站中的 渡一教育-Web前端开发(html css不算语言)。强烈推荐他们的视频,主讲人没有口音且视频质量很高,是哈尔滨理工大学毕业之后进入阿里工作的Web前端工程师 姬成老师。JavaScr…

超市商品管理系统php,超市商品管理系统(含附源代码)超市商品管理系统(含附源代码).doc...

超市商品管理系统(含附源代码)超市商品管理系统(含附源代码)黔南民族师范学院软件设计课程设计报告题 目: 超市商品管理系统系部名称:计科系专业名称:信息管理与信息系统班 级:B12计信班学号:1208045139学生姓名 &…

IOS_OC_id ,NSObject, idlt;NSObjectgt;差别

我们常常会混淆下面三种申明&#xff08;我是没有留意过&#xff09;&#xff1a; 1. id foo1; 2. NSObject *foo2; 3. id<NSObject> foo3;第一种是最经常使用的&#xff0c;它简单地申明了指向对象的指针&#xff0c;没有给编译器不论什么类型信息&#xff…