需要帮助打印出2d数组中的字符串[重复]

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了需要帮助打印出2d数组中的字符串[重复]相关的知识,希望对你有一定的参考价值。

这个问题在这里已有答案:

我试图使用JOptionPane在messagedialog中打印出一个2维数组。我应该创建一个方法,使用for循环将数组转换为字符串。我已经尝试了很多,但它似乎没有让逻辑工作,因为我想要它。这就是我到目前为止所拥有的。

public static String toString(int[][] array) {
        String res = "{";
        for (int i = 0; i < array.length; i++) {
            for (int j = 0; j <array[i].length; j++) {
                res += array[i][j];
                if(j < array.length-1) {
                    res += ","; 
                }
                if (i < array.length-1) {
                    res += "}";
                }

            }

        }res += "}";
        return res;
    }

主要课程:

import javax.swing.JOptionPane;

import arrays.Integer2dArrays;

public class Exercise4b {
    public void testArray(int[][] array) {
        String message = "";
        message += "toString: " + Integer2dArrays.toString( array ) + "
";
        message += "elements: " + Integer2dArrays.elements( array ) + "
";
        message += "max: " + Integer2dArrays.max( array ) + "
";
        message += "min: " + Integer2dArrays.min( array ) + "
";
        message += "sum: " + Integer2dArrays.sum( array ) + "
";
        message += "average: " + String.format( "%1.2f", Integer2dArrays.average( array ) ) + "
";
        JOptionPane.showMessageDialog( null, message );
    }

    public static void main(String[] args) {
        Exercise4b e4b = new Exercise4b();
        int[][] test1 = {{1,2,3,4},{-5,-6,-7,-18},{10,9,8,7}};
        int[][] test2 = {{1,2,3,4,5,6},{-7,-8,-9},{2,5,8,11,8},{6,4}};
        e4b.testArray(test1);
        e4b.testArray(test2);        
    }
}

最终结果应如下所示:

答案

你缺少的常见逻辑是

    if (i > 0)
            res += ",";

所以为了正确使用你的方法toString应该是这样的:

  public static String toString(int[][] array) {
    String res = "{";
    for (int i = 0; i < array.length; i++) {
        if (i > 0)
            res += ",";
        res += "{";
        for (int j = 0; j <array[i].length; j++) {
             if (j> 0)
                res += ",";
            res += array[i][j];
        }
      res += "}";

    }
    res += "}";
    return res;
}
另一答案

也许你可以使用deepToString来实现你的结果?

String result = Arrays.deepToString(test1)
            .replace("[", "{")
            .replace("]", "}")
            .replace(" ", "");

以上是关于需要帮助打印出2d数组中的字符串[重复]的主要内容,如果未能解决你的问题,请参考以下文章

使用Java中的2d数组打印带对角线的矩形

如何创建片段以重复变量编号中的代码行

如何使用范围中的随机值填充数组? (重复没问题。)

Java从数组中删除重复项?

Java数组打印出奇怪的数字和文本[重复]

如何删除python中的打印文本并将其替换为另一个文本[重复]