选择字符串中的某个部分作为变量c#

时间:2011-09-07 13:14:18

标签: c# string

我有一个如下字符串     “1 1/2 + 2 2/3”

现在我希望将“1 1/2”作为变量,将“2 2/3”作为不同的变量。 我该如何解决这个问题?

感谢。

2 个答案:

答案 0 :(得分:6)

如果你总是在中间加上'+',你可以这样做:

var splitStrings = stringWithPlus.Split('+');
for (int i = 0; i < splitStrings.Length; i++) {
   splitStrings[i] = splitStrings[i].Trim();
}

编辑:如果你真的想把这两部分分成两个独立的变量,你可以这样做。但这是非常不必要的。 var的类型将是string[],但要将它们分为两个变量:

var splitStrings = stringWithPlus.Split('+');
for (int i = 0; i < splitStrings.Length; i++) {
   splitStrings[i] = splitStrings[i].Trim();
}
string firstHalf = splitStrings[0];
string secondHalf = splitStrings[1];

但是,更好,只是通过数组访问这些字符串,因为那时你不会为相同的数据分配更多的内存。

如果你对Linq感到满意并且希望缩短它(上面的例子说明了究竟发生了什么),你可以做分裂&amp; foreach in a line:

var splitStrings = stringWithPlus.Split('+').Select(aString => aString.Trim()).ToArray();
string firstHalf=splitStrings[0];
string secondHalf=splitStrings[1];

如果这种语法令人困惑,你应该对Linq进行一些搜索,更具体地说是Linq to Objects。

答案 1 :(得分:3)

为了缩短它,我使用Linq来修剪字符串。然后我将它转换回数组。

string[] parts = stringWithPlus.Split('+').Select(p => p.Trim()).ToArray();

将它们用作:

parts[0], parts[1]... parts[n - 1] 

其中n = parts.Length