将字符串数组分割成更小的数组
本文关键字:数组 分割 字符串 | 更新日期: 2023-09-27 18:13:30
我四处找了找,但找不到任何对我有帮助的东西。我有以下问题-我有一个字符串数组,其中包含:
[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
我已经尝试了几种解决方案,但都不起作用。如有任何协助,不胜感激。
参考资料
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
我们将使用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
。
这将给你一个二维数组(字符串数组的数组):
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