将字符串数组分割成更小的数组

本文关键字:数组 分割 字符串 | 更新日期: 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