如何在没有已知格式的情况下将字符串分成不同的子字符串

时间:2014-05-28 05:01:13

标签: c# string

我遇到了麻烦。 我有几个这样的字符串[44,74,57] 现在我想分成3个字符串并省略C#中的括号和逗号,输出将是这样的:

44
74
57

我尝试过substring,concate,Regular表达式,但问题是字符串,它们没有相同的数字或格式[xx, yy, zz] 有些字符串类似[44, 74, 57],其他字符串类似于[42, 6653, 40000]

任何人都可以帮助我,我应该使用什么?

7 个答案:

答案 0 :(得分:3)

只要[],非常一致,数字位数就无关紧要,Split应该有效:

string tempstr = "[44, 74, 57]";
string[] outarray = tempstr.Split("[,] ".ToArray(),StringSplitOptions.RemoveEmptyEntries);

答案 1 :(得分:1)

您问题中的字符串似乎是一个JSON字符串。如果是这样的话 使用json deserialiser代替。一个不错的选择是Newtonsoft.Json

您可以使用命令

将数字作为int数组
var array JsonConvert.DesrializeObject<int[]>("[1,2,3]");

答案 2 :(得分:0)

string s = "[22, 4564, 65]";

string result[] = s.Replace('[', '').Replace(']', '').Split(',');

答案 3 :(得分:0)

暴力正则表达式/\[(\d)+, ?(\d+), ?(\d+)\]/数据将在第1组,第2组和第3组中捕获:http://rubular.com/r/eheSoJFJ8q

或使用替换和拆分

char[] delimiterChars = { ', ', ',' };

string text = "[1, 2,333]";
string[] words = text.Replace('[','').Replace(']','').Split(comma);

System.Console.WriteLine("just the numbers {0}:", words);

答案 4 :(得分:0)

        String s = "[11,12,23]";
        String[] s1 = s.Substring(1, s.Length - 2).Split(',');

s1将有3个包含三个数字的数组。

答案 5 :(得分:0)

string tempstr = "[44, 74, 57]";
 tempstr=tempstr.Remove(']').Remove('[');
 string[] outarray =tempstr.Split(",");

答案 6 :(得分:0)

尝试删除括号 然后用逗号分隔字符串。 您将得到一组您期望的值。

String value=[44,74,57,444,555];
Value=value.replace("[","");
Value=value.replace("]","");
String[] allValues=value.split(new char[]{','});

现在数组应该包含字符串中的所有值。 这主要是伪代码。我是在平板电脑上写的。 希望它有所帮助。