c# - 如何用逗号加8位分隔字符串

标签 c# string

我想将一个长字符串(仅包含数字)拆分为字符串 arr 0f 数字,逗号后有 8 位数字。

例如:

输入:

string str = "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"

输出:

string[] Arr=
" 
45.00019821 162.20658092 234.03215097 123123.03215097
255.00019822 74.24530302 23422.01471690 1.04686787
12.00019835 1974.61344458 234.39166458 123212.43853245
532.00020199 3499.19734739 878.70680287 1.14533532
1234.00020200 2543.36237801 23.51375920 1.65909452
12221.00020210 2.39173372 0.00048337 1.65957789"

编辑:

我试试看

String.Format("{0:0.00000000}", str); 

或一些子字符串,例如:

public static string GetSubstring(string input, int count, char delimiter) 
{ 
    return string.Join(delimiter.ToString(), input.Split(delimiter).Take(count)); 
} 

没有成功。

最佳答案

您可以使用正则表达式拆分字符串:

var strRegex = @"(?<num>\d+\.\d{8})";
var myRegex = new Regex(strRegex, RegexOptions.None);

foreach (Match myMatch in myRegex.Matches(str))
{
    var part = myMatch.Groups["num"].Value;

    // convert 'part' to double and store it wherever you want...
}

更紧凑的版本:

var myRegex = new Regex(@"(?<num>\d*\.\d{8})", RegexOptions.None);

var myNumbers = myRegex.Matches(str).Cast<Match>()
      .Select(m => m.Groups["num"].Value)
      .Select(v => Convert.ToDouble(v, CultureInfo.InvariantCulture));

关于c# - 如何用逗号加8位分隔字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49554310/

相关文章:

c# - FFmpeg av_interleaved_write_frame 缓冲

c# - 从目录中选择随机文件

c# - 在 C# 中对表达式字符串进行标记

c++ - 忽略包含特殊词的字符串(月)

c# - 无需重新编码即可切割 mp4 h264 视频文件

c# - 读数据库中的字段没有出现在写数据库中是否正常?

c# - 从接收邮件服务器 (POP) 读取电子邮件

java - 在 Java 中使用正则表达式匹配空格或空字符串

python - pandas.DataFrame 将所有字符串值设置为 nan

ruby - 'String#gsub { }'(带 block )如何工作?