只取字符串中的数字并放入数组

时间:2012-04-06 10:47:18

标签: c# string

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

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

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

=“0123456789”

这会从我的字符串中删除所有“垃圾”,只留下数字,但我仍然可以修改它, 所以我可以至少有一个分隔符,例如','b之间的数字,如“0,1,2,3,4,5,6,7,8,9”,因为我需要划定这个数字,所以我可以把它们放在一个整数数组中并与它们一起工作,并不总是只有一个数字,我可能有105,85692等。 有什么帮助吗?!

4 个答案:

答案 0 :(得分:4)

您还可以转换为数字值,如下所示:

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

@ L.B:同意了,但也可能是否定值。

答案 1 :(得分:1)

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

答案 2 :(得分:1)

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

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

答案 3 :(得分:0)

string justNumbers = new String(textIN.Where(Char.IsDigit).ToArray()); = "0123456789"
string[] words = justNumbers.Split(',');

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