我环顾四周但找不到任何帮助过我的东西。我有以下问题 - 我有一个字符串数组包含:
[0] =" 2.4 kWh @ 105.00 c / kWh"
其中[0]是数组的索引。我需要用空格分割它,这样我就可以有几个较小的数组。所以看起来应该是这样的:
[0] will contain 2.4
[1] will contain kWh
[2] will contain @
[3] will contain 105.00
[4] will contain c/mWh
我尝试了几种解决方案但没有效果。任何帮助都将受到高度赞赏。
答案 0 :(得分:3)
string s = "2.4 kWh @ 105.00 c/kWh";
string[] words = s.Split(new char [] {' '}); // Split string on spaces.
foreach (string word in words)
{
Console.WriteLine(word);
}
然后您可以将控制台输出设为
2.4
kWh
@
105.00
c/mWh
答案 1 :(得分:1)
我们会使用string[] strings = new[] { "2.4 kWh @ 105.00 c/kWh", "this is a test" };
作为您的数组的示例。
这就是你可以把它全部放到一个数组中的方法。我已将其保留为IEnumerable<T>
以保持此优惠,但您可以随意添加.ToArray()
。
public IEnumerable<string> SplitAll(IEnumerable<string> collection)
{
return collection.SelectMany(c => c.Split(' '));
}
在此,这将评估为{ "2.4", "kWh", "@", "105.00", "c/kWh", "this", "is", "a", "test" }
。
或者,如果我误解了你,你实际上想要一个阵列数组,
public IEnumerable<string[]> SplitAll(IEnumerable<string> collection)
{
return collection.Select(c => c.Split(' '));
}
此处{ { "2.4", "kWh", "@", "105.00", "c/kWh" }, { "this", "is", "a", "test" } }
。
或者,如果我完全误解你,你只想分开一个字符串,那就更容易了,而且我已经展示了它,但你可以使用string.Split
答案 2 :(得分:0)
这将为您提供一个二维数组(字符串数组数组):
var newArr = strArr.Select(s => s.Split(' ').ToArray()).ToArray();
例如:
string[] strArr = new string[] { "2.4 kWh @ 105.00 c/kWh", "Hello, world" };
var newArr = strArr.Select(s => s.Split(' ').ToArray()).ToArray();
for (int i = 0; i < newArr.Length; i++)
{
for(int j = 0; j < newArr[i].Length; j++)
Console.WriteLine(newArr[i][j]);
Console.WriteLine();
}
// 2.4
// c/kWh
// @
// 105.00
// kWh
//
// Hello,
// world