我有一个如下字符串 “1 1/2 + 2 2/3”
现在我希望将“1 1/2”作为变量,将“2 2/3”作为不同的变量。 我该如何解决这个问题?
感谢。
答案 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
。