Unity3d中的简单C#或unityscript编码。需要从nx2数组中删除所有不同的单词

时间:2012-12-02 04:38:05

标签: string split unity3d unityscript

抱歉但我对Unity中的编码很新。我有一个nx2数组,如下所示:

var questans = new String[10, 10];
questans[0,0]="Hey How's it going?";
questans[0,1]="You know me Just chillin'";
questans[1,0]="Hello there friend";
questans[1,1]="Well met to you too!";
questans[2,0]="I like chocolate pudding";
questans[2,1]="Good for you";

我需要基本上写一个for循环,它可以遍历这个数组并给我一个包含所有不同单词的数组。因此,输出应该是:[嘿,怎么样,它,去......]

我编写了一个函数来执行此操作,但我无法拆分字符串,因为Unity使用string.split为我的代码提供了一些奇怪的错误:

我写过:

var ff:String [] // Temporary variable. I'm just testing for the first string questans[0,0]
ff=quesans[0,0].Split(" "[0]);

然而,它给了我System.String []作为输出......即使在迭代ff。

有人可以给我一个方法,让我可以看到整个数组(我可以遍历它)并获得每个不同的单词,而不必为它手动编写for循环吗?

谢谢!

2 个答案:

答案 0 :(得分:1)

对阵列集使用 Distinct 方法,如下所示 Distinct value 1
Distinct value 2

这将帮助您,您不需要任何粘性循环。

答案 1 :(得分:0)

我要告诉你的第一件事是你的变量“ questans ”是而不是 quesans ”。所以“ ff = quesans .... ”应该不起作用。也许那是你的问题?如果没有:

实际上,这很简单。 你所写的是概念上的一段代码。 试试这个:

var ff: String[questans.Length]; //Returned string array
var linenumber = 0; //Current line, 0-index
var spacecount = 0; //Current space in current line, 0-index
foreach (var line in questans)
{
    foreach (var spaceSplit in line.Split(" "))
    {
        ff[linenumber, spacecount] =  spaceSplit[spacecount];
        spacecount++;
    }
    spacecount = 0;
    linenumber++;
}

在这段代码中,我将嵌套两个foreach循环来捕获每一行中的每个空格,并返回一行数组,按空格分割。

另外,在旁注中,当创建数组 questans 时,我建议您初始化它并在同一代码行中分配它。对于数组 questans 我会这样做:

var questans: String[10, 10] = [["Hey How's It Going?",
        "You know me Just chillin'"],
        ["Hello there friend",
        "Well met to you too!"],
        ["I like choclate pudding",
        "Good for you"]];

修改

如果你想在没有循环的情况下完成整个数组,那我就不知所措了。抱歉,我怀疑有这样的方法。