抱歉但我对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循环吗?
谢谢!
答案 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"]];
修改强>:
如果你想在没有循环的情况下完成整个数组,那我就不知所措了。抱歉,我怀疑有这样的方法。