-1

さて私はここに私のコードを手に入れました

static void snake(String u[][]){
        for(int i=0; i<u.length; i++){
            if(i%2==0){
                for(int j=0; j<u[i].length; j++){
                    String asli = u[i][j];
                    System.out.print(asli+"");
                }
            }else
                for(int j=u[i].length-1; j>=0; j--){
                    String asli = u[i][j];
                    System.out.print(asli+"");

                }
            }


        }

そこにある私のコードは、以前に作成した配列を読み取ることです。そして、スネークパスの配列を右から左に読み取り、次の行で左から右に読み取ります。

私はこのように私のコードでこのメソッドを呼び出します:

snake(matrix);

したがって、前に作成した配列はこのメソッドに進みます。

「asdbasdbasdbsad」のような出力が作成され、それをキャプチャしたいのですが... printstreamを試しましたが、機能しませんでした。その出力、私はそれらを私の別のコードで進める必要があります。そして、私はそれらを正しくすることができません。代わりに、最初にそれらをファイルに保存してから、次の方法でファイルを読み取る方法はありますか?そのようなものを作るために適用できる別の論理的な方法はありますか?または、私のコードのような配列を文字列に変換することは可能ですか?私の英語は申し訳ありませんが、英語は私の母国語ではありません。私はどんな助けにも感謝します、そして前に感謝します。

私はnpintiのコードを使用していますが、それは機能しています。

static String ular(String u[][]){
        StringBuilder code2 = new StringBuilder();

        for(int i=0; i<u.length; i++){
            if(i%2==0){
                for(int j=0; j<u[i].length; j++){
                    String asli = u[i][j];
                    System.out.print(asli+"");
                    code2.append(asli);
                    //System.out.print(asli+"");

                }
            }else
                for(int j=u[i].length-1; j>=0; j--){
                    String asli = u[i][j];
                    System.out.print(asli+"");
                    code2.append(asli);
                    //System.out.print(asli+"");

                }
            }
        return code2.toString();


    }
4

2 に答える 2

2

結果を出力する代わりに、それを返します。

static String snake(String u[][]) {
    StringBuilder builder = new StringBuilder();
    for (int i = 0; i < u.length; i++) {
        if (i % 2 == 0) {
            for(int j = 0; j < u[i].length; j++) {
                String asli = u[i][j];
                builder.append(asli);
            }
        }
        else
            for (int j = u[i].length - 1; j >= 0; j--) {
                String asli = u[i][j];
                builder.append(asli);
            }
        }
    }
    return builder.toString();
}
于 2013-03-15T07:16:39.880 に答える
1

あなたができることは、それがaまたはsomereturnの形で印刷するものは何でもあなたのメソッドを作ることです。StringCollection

たとえば、次のようにすることができます。

static String snake(String u[][]){
    StringBuilder sb = new StringBuilder();
    for(int i=0; i<u.length; i++){
        if(i%2==0){
            for(int j=0; j<u[i].length; j++){
                String asli = u[i][j];
                System.out.print(asli+"");
                sb.append(asli + ",");
            }
        }else
            for(int j=u[i].length-1; j>=0; j--){
                String asli = u[i][j];
                System.out.print(asli+"");
                sb.append(asli + ",");
            }
        }
        return sb.toString();
    }

Stringこれにより、後でプログラムで次のように使用できるカンマ区切りが返されます。

String[][] u = ...
String result = snake(u);

編集:これはあなたがそれに行くことができる別の方法です:

static List<String> snake(String u[][]){
    List<String> list = new ArrayList<String>();
    for(int i=0; i<u.length; i++){
        if(i%2==0){
            for(int j=0; j<u[i].length; j++){
                String asli = u[i][j];
                System.out.print(asli+"");
                list.add(asli);
            }
        }else
            for(int j=u[i].length-1; j>=0; j--){
                String asli = u[i][j];
                System.out.print(asli+"");
                list.add(asli);
            }
        }
        return list;
    }

そして、あなたはそれをそのように呼びます:

String[][] u = ...
List<String> moves = snake(u);
于 2013-03-15T07:17:11.710 に答える