日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

读取字符串中的数字和小数

發(fā)布時間:2023/11/29 编程问答 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 读取字符串中的数字和小数 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

package com.jm.label.tools;

import java.util.Map;
import java.util.TreeMap;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
/**
?* 讀取字符串中的數(shù)字和小數(shù)
?* @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); //遍歷小數(shù)部分
?? ??? ??? ?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); //排除小數(shù)的整數(shù)部分和另一個整數(shù)相同的情況下,尋找整數(shù)位置出現(xiàn)錯誤的可能,還有就是尋找重復(fù)的小數(shù) // 例子中是排除第二個345.56時第一個345.56產(chǎn)生干擾和尋找整數(shù)345的位置時,前面的小數(shù)345.56會干擾
?? ??? ??? ??? ?str = str.substring(0, i) + str.substring(i + result.length()); } //遍歷整數(shù)
?? ??? ??? ?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對整數(shù)23產(chǎn)生干擾
//?? ??? ??? ??? ?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;
?? ?}
}

轉(zhuǎn)載于:https://www.cnblogs.com/java-h/p/10583986.html

總結(jié)

以上是生活随笔為你收集整理的读取字符串中的数字和小数的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。