读取字符串中的数字和小数
package com.jm.label.tools;
import java.util.Map;
import java.util.TreeMap;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
/**
* 读取字符串中的数字和小数
* @author JM.H
*
*/
public class DigitUtil {
public static String getNumber(String str){
Pattern p = Pattern.compile("(\\d+)");
Matcher m = p.matcher(str); String result = "";
if (m.find()) {
Map<Integer, String> map = new TreeMap<Integer, String>();
Pattern p2 = Pattern.compile("(\\d+\\.\\d+)");
m = p2.matcher(str); //遍历小数部分
while (m.find()) {
result = m.group(1) == null ? "" : m.group(1);
int i = str.indexOf(result);
String s = str.substring(i, i + result.length());
map.put(i, s); //排除小数的整数部分和另一个整数相同的情况下,寻找整数位置出现错误的可能,还有就是寻找重复的小数 // 例子中是排除第二个345.56时第一个345.56产生干扰和寻找整数345的位置时,前面的小数345.56会干扰
str = str.substring(0, i) + str.substring(i + result.length()); } //遍历整数
Pattern p3 = Pattern.compile("(\\d+)");
m = p3.matcher(str);
while (m.find()) {
result = m.group(1) == null ? "" : m.group(1); int i = str.indexOf(result); //排除jia567.23.23在第一轮过滤之后留下来的jia.23对整数23产生干扰
// System.out.println(String.valueOf(str.charAt(i)));
if (String.valueOf(str.charAt(i)).equals(".")) { //将这个字符串删除
str = str.substring(0, i - 1) + str.substring(i + result.length());
continue;
}
String s = str.substring(i, i + result.length());
map.put(i, s);
str = str.substring(0, i) + str.substring(i + result.length());
}
result = "";
for (Map.Entry<Integer, String> e : map.entrySet()) {
result += e.getValue() + ",";
}
result = result.substring(0, result.length()-1);
}
else {
result = "";
}
// System.out.println(result);
String[] split = result.split(","); //
String resultRtr = split[split.length-1]; //
return resultRtr;
}
}
转载于:https://www.cnblogs.com/java-h/p/10583986.html
读取字符串中的数字和小数相关推荐
- C++ 小功能算法模板:读取字符串中的数字
读取字符串中的数字 #include <iostream> #include <vector> #include <string> #include <cst ...
- C++读取字符串中的数字的方法
代码实例: #include <iostream> #include <sstream> #include <fstream> using namespace st ...
- Java提取字符串中的数字和小数
从网上找的代码如下: //取字符串中的数字public String checkNum(String str) { // String str = "abcd123和345.56jia567 ...
- 正则匹配——python用一个正则表达式从字符串中提取数字(包括整数、小数、正负数)
import re# 从字符串中提取数字 totalCount = '-100,abc2.4-123s,d-1ds-0.234as123.2s1.3bb.24' count = re.findall( ...
- java读取字符串中数字
java从字符串中提取数字 随便给你一个含有数字的字符串,比如: String s="eert343dfg56756dtry66fggg89dfgf"; 那我们如何把其中的数字提取 ...
- python正则表达式提取数字比较好_python正则表达式从字符串中提取数字的思路详解...
python从字符串中提取数字 使用正则表达式,用法如下: ## 总结 ## ^ 匹配字符串的开始. ## $ 匹配字符串的结尾. ## \b 匹配一个单词的边界. ## \d 匹配任意数字. ## ...
- python字符串数字求和_python处理字符串:将字符串中的数字相加求和
原博文 2018-07-27 23:15 − 计算字符串中所有数字的和,字符串中有数字和字母组合而成如果出现连续数字,按照一个数操作具体解释在代码行里: def sum_str(str1): len1 ...
- Bailian2888 字符串中的数字【字符串】
字符串中的数字 总时间限制: 1000ms 内存限制: 65536kB 描述 输入一个字符串,长度不超过20,字符串中包含数字和非数字字符,将其中是数字的字符提取出来,对它们进行从小到大排序,非数字字 ...
- C#正则匹配(提取字符串中的数字)及C#“四舍五入”
本篇文章介绍一个正则小实例,使用C#语法正则匹配字符串中的数字,提取出来.并介绍一下,C# 数字计算中的"四舍五入". C#正则匹配数字 一下是提取字符串中数字(包含小数)的实例代 ...
最新文章
- Bootstrap中默认表单的创建
- 模态框在IE下的问题,即position:fixed在IE下不兼容的处理方式
- 使用过滤统计信息解决基数预估错误
- Linux常用命令(第二版) --Shell应用技巧
- phpcmsV9 关于phpcms根目录下ico图标,改了没效果的解决办法?
- Java面试之五大框架的理解
- 消息中间件学习总结(13)——Kafka与RocketMQ的单机系统可靠性比较分析
- 如何禁止特定用户使用sqlplus或PL/SQL Developer等工具登陆?
- linux 脚本 格式化,Shell脚本批量格式化文件名
- MATLAB中范数norm()函数精讲
- Hadoop详解(二)——HDFS的命令,执行过程,Java接口,原理详解。RPC机制
- Windows C语言开发环境实践
- arduino智能闹钟_要写一个Arduino的电子闹钟程序,板子是Arduino UNO,和一个实时钟的芯片DS1307,开发环境是Arduino-1.0.2...
- 百度富文本编辑器php设置图片上传,手把手教你百度富文本编辑器的相关配置包括图片上传(for jsp)...
- 小草音乐播放器[emlog插件]
- 使用navicat进行mysql数据库拷贝
- 电脑连接上WiFi但是上不了网
- shell常用语法之if [ $? -ne 0 ]
- 生成式模型与辨别式模型
- 正式环境使用Mysql MGR集群部署(一看就会)