2

私が取り組んだ次のコードの場合、問題はforループの外側の変数文字列にアクセスする方法です。ありがとうございます。

for (String[] string: arr) {
    if(string.length == 1)
    { 
        System.out.println(string[0]);
        continue;
    }
    for (int i = 1; i < string.length; i++)  {
        System.out.println(string[0] + " " + string[i]);
    }
}
4

5 に答える 5

3

変数stringはローカル スコープであり、ループ内にのみ存在します。最初に外部String[]変数を定義してから、ループ内でその変数に割り当てを行う必要があります。

String[] outsideString;

for (String[] string: arr) {
  ...
  outsideString = string;
  ...
}

// This line works
System.out.println(outsideString[0]);
于 2013-02-12T19:08:34.010 に答える
2

次のソリューションは、出力されるすべての文字列の配列リストを提供します。これにより、文字列配列ロジックで作成された配列リストが提供され、for loop.

finalList を使用して、for loop.

ArrayList<String> finalList = new ArrayList<String>();

    for (String[] string: arr) {

        if(string.length == 1)
        { 
            System.out.println(string[0]);
            finalList.add(string[0]);
            continue;
        }
        for (int i = 1; i < string.length; i++)  {
            System.out.println(string[0] + " " + string[i]);                
            finalList.add(string[0] + " " + string[i]);
        }   
    }

    for(String output: finalList){
        System.out.println(output);
    }

お役に立てれば。

于 2013-02-14T20:30:13.413 に答える
0

このコードを与えることはできません。上部にある拡張forループでは、forループのローカル変数のみを使用できます

于 2013-02-12T19:03:03.457 に答える
0

できません。上記のループの外側のループから何かにアクセスする必要がある場合は、ループの外側に文字列またはコレクション変数を作成し、ループの内側からそれに割り当て/追加します。

于 2013-02-12T19:08:50.347 に答える
0

これを試して。

String[] outerString  = {}; 

    for (String[] string: arr) {
        outerString = string;
        if(string.length == 1)
        { 
            System.out.println(string[0]);
            continue;
        }
        for (int i = 1; i < string.length; i++)  {
            System.out.println(string[0] + " " + string[i]);
        }   
    }

    if(outerString.length > 0){
        System.out.println(outerString[0]);
    }

コレクション反復の最後のアイテムのみが外側の文字列に出力されることに注意してください。

于 2013-02-12T19:19:52.503 に答える