-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 回答