【问题标题】:how can I return as a string with everything in the array per row?如何以字符串形式返回每行数组中的所有内容?
【发布时间】:2014-01-17 20:17:57
【问题描述】:

您好,我在查看双数组后试图弄清楚:

public static String  returnWhatIsInTheArrayAsAString(char [][] a){
    String whatIs = " ";
    for(int i = 0; i < a.length; i++){
        for(int j = 0; j < a[i].length; j++){

        }
    }
    return whatIs + "\n";
}

如果有意义,我如何返回两个数组中的内容?如何将其添加到我的\n?

【问题讨论】:

  • 我不明白你的问题。你能改写一下吗?或者贴一个输入/输出的小例子?

标签: java arrays return


【解决方案1】:

假设我正确理解了您的问题,您有 char[][] 本质上您将其视为字符串数组,并且您希望返回一个字符串,其中数组的每个成员由换行符分隔?那么就比较简单了。

public static String  returnWhatIsInTheArrayAsAString(char [][] a){
        StringBuilder whatIs = new StringBuilder();
        for(int i = 0; i < a.length; i++){
           whatIs.append(new String(a[i])).append('\n');
        }
        return whatIs.toString();
    }
}

如果您想要将数组的内容作为一个字符串返回,那么可能类似于:

public static String returnWhatIsInTheArrayAsAString(char[][] a) {
    StringBuilder whatIs = new StringBuilder();
    for (int i = 0; i < a.length; i++) {
        whatIs.append('{ ');
        for (int j = 0; j < a[i].length; j++) {
            whatIs.append(a[i][j]);

            if(j < a[i].length - 1){
              whatIs.append(', ');
            }
        }
        whatIs.append(' }\n');
    }
    return whatIs.toString();
}

会成功的。

【讨论】:

    【解决方案2】:

    您可以在循环时将字符添加到字符串中:

    public class Test {
            public static String  returnWhatIsInTheArrayAsAString(char [][] a){
                String whatIs = " ";
                for(int i = 0; i < a.length; i++){
                    for(int j = 0; j < a[i].length; j++){
                       whatIs += a[i][j];
                    }
                    whatIs += "\n";
                }
                return whatIs + "\n";
            }
    
            public static void main(String[] args) throws Exception {
                char[][] foo = new char[][] {{'a', 'b', 'c'}, {'d', 'e', 'f'}, {'g', 'h', 'i'}};
                System.out.println(returnWhatIsInTheArrayAsAString(foo));
            }
        }
    

    【讨论】:

    • 所以这似乎是正确的方法,我只需要每个单词都换行。它像这样编译:fspnsryshburaqpyypjiyyqgknsylv
    • 我想我已经修改了答案来做到这一点。这就是你的意思吗 - 在通过二维数组的第一个循环的每次迭代之后添加一个 \n ?
    【解决方案3】:

    使用foreachnew String(char[] value) 作为行。

    public static String returnWhatIsInTheArrayAsAString(char[][] array) {
        String string = "";
        for (char[] row : array) {
            string += new String(row) + "\n";
        }
        return string;
    }
    

    示例用法:

    public static void main(String[] args) throws InterruptedException {
        char[][] foo = new char[][] {{'a', 'b', 'c'}, {'d', 'e', 'f'}, {'g', 'h', 'i'}};
        System.out.println(returnWhatIsInTheArrayAsAString(foo));
    }
    

    会回来

    abc
    def
    ghi
    

    【讨论】:

      猜你喜欢
      • 2022-01-03
      • 2016-10-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-22
      • 1970-01-01
      相关资源
      最近更新 更多