循环通过逗号分隔的字符串,分割成多个数组

本文关键字:分割 数组 字符串 分隔 循环 | 更新日期: 2023-09-27 17:54:34

我有一个字符串,格式为:

div, v6571, 0, div, v8173, 300, p, v1832, 400

我想把这个字符串分成多个数组,对于上面的例子,我需要3个数组,这样的格式是这样的:

item[0] -> div
item[1] -> v6571
item[2] -> 0

我知道我可以在字符串上做一个.Split(',')并把它放入一个数组中,但这是一个很大的数组。对于上面的字符串示例,我需要3个具有上面提供的结构的数组。只是对字符串的迭代有点困惑!

谢谢!

循环通过逗号分隔的字符串,分割成多个数组

我不确定您到底在寻找什么,但是要将上面的内容转换为三个独立的数组,我将执行如下操作:

var primeArray = yourString.Split(,);
List<string[]> arrays = new List<string[]>();
for(int i = 0; i < primeArray.Length; i += 3)
{
  var first = primeArray[i];
  var second = primeArray[i+1];
  var third = primeArray[i+2];
  arrays.Add(new string[] {first, second, third});
}

然后你可以遍历字符串数组列表并做任何事情。

这确实假设您的所有字符串数组都将始终是三个字符串长-如果不是,您需要对该primeArray执行foreach并更手动地封送您的数组。

这是我使用的确切代码。请注意,它并没有真正改变原始未编译版本的任何内容:

var stringToSplit = "div, v6571, 0, div, v8173, 300, p, v1832, 400";
List<string[]> arrays = new List<string[]>();
var primeArray = stringToSplit.Split(',');
for (int i = 0; i < primeArray.Length; i += 3)
{
   var first = primeArray[i];
   var second = primeArray[i + 1];
   var third = primeArray[i + 2];
   arrays.Add(new string[] { first, second, third });
}

当我在调试中检查它时,它确实包含了所有三个期望的数组。

. split(",")是最好的选择。然后,您可以修改该字符串数组以反映您需要的任何结构。

您可以使用正则表达式或其他方法,但没有任何方法具有String的性能。

下面的代码假设数组的长度是3的倍数:

var values = str.Split(',')
string[,] result = new string[values .Length / 3, 3];
for(int i = 0; i < params.Length; i += 3)
{
    int rowIndex = i / 3;
    result[rowIndex, 0] = values [i];
    result[rowIndex, 1] = values [i + 1];
    result[rowIndex, 2] = values [i + 2];
}

在我的脑海中编译,但它应该工作。

为了让我明白你的意思,你需要把它们分类为:

1)字符数组2)字符和数字3)只有数字

如果是,你可以这样做:

1)首先尝试用Int32解析字符串。解析如果成功,存储在数字数组中2)捕获异常并对数字进行正则表达式对剩余的2个数组

进行排序

希望这对你有帮助