C# 仅从字符串中提取数字并放入数组

C# 仅从字符串中提取数字并放入数组,c#,string,C#,String,好的,我发现这是为了从字符串中删除所有不是数字的“垃圾” TextIN = " 0 . 1 ,2 ; 3 4 -5 6 ,7 ,8; 9 " string justNumbers = new String(textIN.Where(Char.IsDigit).ToArray()); =“0123456789” 这将从字符串中删除所有“垃圾”,只留下数字,但我仍然可以修改它, 所以我可以在数字之间至少有一个定界符,比如a',b,比如“0,1,2,3,4,5,6,7,8,9”,因为我需要对这个数

好的,我发现这是为了从字符串中删除所有不是数字的“垃圾”

TextIN = " 0 . 1 ,2 ; 3 4 -5 6 ,7 ,8; 9 "

string justNumbers = new String(textIN.Where(Char.IsDigit).ToArray());
=“0123456789”

这将从字符串中删除所有“垃圾”,只留下数字,但我仍然可以修改它, 所以我可以在数字之间至少有一个定界符,比如a',b,比如“0,1,2,3,4,5,6,7,8,9”,因为我需要对这个数字进行定界符,这样我就可以把它们放在一个整数数组中并使用它们,而不是总是只有一个数字,我可能有105,85692等等。。 需要帮忙吗

string test = string.Join(",", textIN.Where(Char.IsDigit));

将字符串分隔为一个数字数组,以逗号分隔

对于n位数字,可以使用正则表达式

string s = String.Join(",",
                  Regex.Matches(textIN,@"\d+").Cast<Match>().Select(m=>m.Value));
string s=string.Join(“,”,
Regex.Matches(textIN,@“\d+”).Cast().Select(m=>m.Value));

您也可以像这样转换为数值:

int[] numbers = Regex.Matches(textIN, "(-?[0-9]+)").OfType<Match>().Select(m => int.Parse(m.Value)).ToArray();
int[]numbers=Regex.Matches(textIN,“([0-9]+)”)of type()。选择(m=>int.Parse(m.Value)).ToArray();

@L.B:同意,但也可能有负值。

对多个数字有效吗?我不确定这就是我问的原因。我认为这甚至不正确,但无论如何我不需要拆分0,1,2,3,。。我需要0300450,341090,3,…该代码假设您输入了一个字符串,如“0,1300,53,45”,它通过在每个逗号处拆分字符串来创建一个数组。可能有实数、复数,形式为
10E3
等:)当然!所以这取决于OP的意图,支持哪种数字(现在我看到没有负数请求,所以我有一部分是错的)。好的thx为我完成所有想法:D有负数和所有类型的数字,你为我完成了未知的谜团ok这适用于n个数字,您纠正了我的isDigit错误:)thx这里有负数,isDigit是错误的,一次只接受一个数字,thx用于corection me@jCoder
int[] numbers = Regex.Matches(textIN, "(-?[0-9]+)").OfType<Match>().Select(m => int.Parse(m.Value)).ToArray();