0

申し訳ありませんが、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ループを作成する必要があります。したがって、出力は次のようになります。[Hey、How's、it、going .....]

これを行う関数を作成しましたが、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]);

ただし、ffを繰り返し処理しても、出力としてSystem.String[]が返されました。

誰かが私にこの配列全体を調べて(私はそれを反復することができます)、手動でforループを書かなくてもすべての個別の単語を取得する方法を教えてもらえますか?

ありがとう!!

4

2 に答える 2

1

次に示すように、配列コレクションにDistinctメソッドを使用します。
個別の値1
個別の値2

これはあなたを助け、あなたは粘着性のあるループを必要としません。

于 2012-12-02T07:12:00.597 に答える
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++;
}

このコードでは、2つのforeachループをネストして、各行内の各スペースをキャッチし、スペースで分割された行の配列の配列を返します。

また、補足として、配列クエストを作成するときは、初期化してすべて同じコード行に割り当てることをお勧めします。配列クエストの場合、私はこれを行います:

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"]];

編集

ループなしで配列全体を通過したい場合、私は途方に暮れています。申し訳ありませんが、そのような方法があるとは思えません。

于 2012-12-02T06:21:35.193 に答える