如何将纯数字长字符串分割为带8位小数的字符串数组
解决方法:提取带8位小数的数字到字符串数组
嘿,这个需求用正则表达式就能完美搞定!你的输入字符串是由一串连续(或偶尔带空格)的、固定8位小数的数字组成的,我们只需要精准提取每个符合格式的数字片段即可。
核心思路
每个目标数字的格式都是 整数部分.8位小数,所以用正则表达式匹配这个模式,就能把所有符合要求的数字都抓出来,再转换成字符串数组。
代码示例(C#)
因为你的示例看起来是C#语法,这里给出对应的实现:
using System; using System.Text.RegularExpressions; class NumberSplitter { static void Main() { string inputStr = "45.00019821162.206580920.032150970.03215097244.0031982274.245303020.014716900.046867870.000198351974.613444580.391664580.438532450.00020199 3499.19734739 0.706802871.145335320.000202002543.362378010.513759201.659094520.000202102.391733720.000483371.65957789"; // 正则匹配:一个或多个数字 + 小数点 + 精确8位数字 var matches = Regex.Matches(inputStr, @"\d+\.\d{8}"); // 转换为字符串数组 string[] resultArr = new string[matches.Count]; for (int i = 0; i < matches.Count; i++) { resultArr[i] = matches[i].Value; } // 验证输出(可选) Console.WriteLine("分割后的数组元素:"); foreach (var num in resultArr) { Console.WriteLine(num); } // 如果需要像示例那样拼接成带空格的字符串 string formattedStr = string.Join(" ", resultArr); Console.WriteLine("\n格式化后的字符串:"); Console.WriteLine(formattedStr); } }
正则说明
\d+:匹配1个或多个数字(对应数字的整数部分,支持多位数和0开头的整数)\.:匹配小数点(因为.在正则里是通配符,所以要加反斜杠转义)\d{8}:精确匹配8个数字(对应固定的8位小数部分)
这样不管输入里的数字是连在一起还是被空格隔开,都能准确提取出每个带8位小数的数字,最终得到你需要的字符串数组。
内容的提问来源于stack exchange,提问作者Jhon
相关产品推荐
相关产品推荐

