打印二维数组,没有多余的空格或线条

问题描述 投票:0回答:2

我正在尝试为2D数组编写一个方法,该方法将在两个值之间使用单个空格打印我们的值,并且各行之间将使用一个换行符。在第一个值之前或最后一个谷值之后或在第一行或最后一行之后的换行符之间也不应有空格。我的值打印整齐,但是我不知道如何确保没有多余的行或空格。我正在考虑在我的代码中实现if语句或使用trim方法。这是我的代码!

public static String arrayToString(int a[][]){

    int row = a.length;
    int column = a[0].length;
    String array = " ";
    for (int i = 0; i<row; i++) {
        for (int j = 0; j< column; j++){
            array += a[i][j] + " ";

        }
        array += "/n";
    }

    return array;
}
java arrays matrix newline whitespace
2个回答
0
投票

您必须添加if语句,该语句将检查它是行尾还是所有内容的结束,并基于该添加或不添加空格或换行。

所以不只是拥有这个array += a[i][j] + " ";

您需要检查if (i != row - 1)(这是行的结尾),并且仅在这种情况下才添加空格。

array += "/n";同样适用,您需要检查j的值以确保在结尾时不添加它


0
投票

您刚刚回答了自己的问题

修剪最后一个字符

public static String arrayToString(float a[][]){

        int row = a.length;
        int column = a[0].length;
        String array = ""; // I removed the space you had here
        for (int i = 0; i<row; i++) {
            for (int j = 0; j< column; j++){
                array += a[i][j] + " ";

            }
            array += "\n"; // I changed /n to \n
        }

        return array.substring(0,array.length()-2); // return the trimmed string
    }

或添加if语句以检查是否为最后一项

public static String arrayToString(float a[][]){

        int row = a.length;
        int column = a[0].length;
        String array = ""; // I removed the space you had here
        boolean isLast = false;
        for (int i = 0; i<row; i++) {
            for (int j = 0; j< column; j++){
                isLast = i == row-1 && j == column-1?true:false;
                if(isLast)
                    array += a[i][j];
                else
                    array += a[i][j] + " ";

            }
            if(!isLast)
                array += "\n"; // I changed /n to \n
        }

        return array;
    }
© www.soinside.com 2019 - 2024. All rights reserved.