将字符串数组拆分为较小的数组

时间:2014-07-18 07:16:20

标签: c# asp.net arrays string

我环顾四周但找不到任何帮助过我的东西。我有以下问题 - 我有一个字符串数组包含:

[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

我尝试了几种解决方案但没有效果。任何帮助都将受到高度赞赏。

3 个答案:

答案 0 :(得分:3)

Reference

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