【问题标题】:Double Parse into an 2D array or jagged array双重解析成二维数组或锯齿状数组
【发布时间】:2013-07-01 12:50:57
【问题描述】:

我有一个包含

的文本文件
name,definition;
name1,definition;
name2, definition;

我知道如何将要从文本文件中提取到脚本中的字符串拆分,但我不知道如何将其全部放入 2darray 或锯齿状数组中。

单词后面应该是这样的

array[0][0] = name;
array[0][1] = definition;

抱歉,我忘了说是什么语言,它是 C# 语言

【问题讨论】:

  • 这是什么语言?爪哇? C#?红宝石?
  • 抱歉忘了提到语言c#

标签: string parsing multidimensional-array jagged-arrays


【解决方案1】:

这是您在 JavaScript 中的解决方案。 注意如果您的行值可以包含引号、换行符或转义分隔符,则需要进行更多解析。

http://jsfiddle.net/N4YYA/

var result = [];
var txt = document.getElementById("test").value;
// get lines
var lines = txt.split(";");
for(var i=0; i<lines.length; i++) {
    // get and trim whitespace off the line
    var line = lines[i].replace(/(^[\s\r\n]*|[\s\r\n]*$)/g, "");
    var values = line.split(",");
    var row = [];
    for(var j=0; j<values.length; j++) {
        // get and trim whitespace off each value
        var value = values[j].replace(/(^[\s\r\n]*|[\s\r\n]*$)/g, "");
        // add it to your row array
        row.push(value);
    }
    // add row to results
    result.push(row);
}

// debug show result
var o = document.getElementById("outp");
for(var x=0; x<result.length; x++)
    o.innerHTML += result[x].toString() + "<br/>";

【讨论】:

  • 这基本上是我在 C# 中寻找的东西,我忘了在上面提到,抱歉忘了说
  • @imGreg - 好的,然后使用这段 JavaScript 代码,将所有“result = []”替换为“result = new List>()”,将“row = []”替换为“ row = new List()" 和 ".push" 与 ".Add" 和 ".replace(...)" 与 ".trim()" 也一样,确保在 .Split 中大写 S。应该这样做。
  • 我在修剪线处遇到错误。我将 Unity3D 与 C# 一起使用,并且它对修剪函数中的所有字符表示意外符号
  • var line = lines[i].trim(([\r\n]*|[\r\n]*$)/g, ""); var value = values[j].trim((^[\r\n]*|[\s\r\n]*$)/g, "");
  • @imGreg - 您不能在 C# 中使用文字正则表达式,而且带有大写 T 的 c# .Trim() 函数(就像 C# 中的所有对象函数一样)不接受任何参数。
【解决方案2】:

在 C# 中:

string[][] array = inputString.Split(';').Select(x => x.Split(',')).ToArray();

如果您出于某种原因想要包含修剪:

string[][] array = inputString.Split(';').Select(x => x.Split(',').Select(y=>y.Trim()).ToArray()).ToArray();

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-03-16
    • 2015-10-18
    • 1970-01-01
    • 2013-02-24
    • 2014-04-21
    • 2011-02-04
    • 1970-01-01
    相关资源
    最近更新 更多