Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/386.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何打印一个字符串,该字符串的数组中的每个元素为一行四个_Java_Arrays_Methods_Tostring - Fatal编程技术网

Java 如何打印一个字符串,该字符串的数组中的每个元素为一行四个

Java 如何打印一个字符串,该字符串的数组中的每个元素为一行四个,java,arrays,methods,tostring,Java,Arrays,Methods,Tostring,这是我的密码 public String toString() { String B = A[0] + " "; for (int w = 1; w < this.A.length; w-=-1) { B += A[w] + " "; if(w % 4 == 0) B += "\n"; } return B; } 我正在为java类编写一个toString方法。该数组有52个元素 相反,我一直将其作为

这是我的密码

public String toString() {
    String B = A[0] + " ";
    for (int w = 1; w < this.A.length; w-=-1) {
        B += A[w] + " ";
        if(w % 4 == 0)
            B += "\n";
    }
    return B;
}
我正在为java类编写一个toString方法。该数组有52个元素 相反,我一直将其作为输出:

1S 4S 6S 2S 8S 
8S 7S 3S 7S 
6S 8S 5S 6S
3C 3C 1C 8C 
8C 9C 4C 
你所要做的就是:

String B = A[0] + " ";
for (int w = 1; w < this.A.length; w-=-1) {
    if (w % 4 == 0) {
        B += "\n";
    }
    // this line is after the check because you already added the first
    // element to the string before the loop
    B += A[w] + " ";
}
字符串B=A[0]+“”;
对于(int w=1;w
同样:在循环中附加到
字符串
是一项昂贵的操作,因为java中的字符串是不可变的。改用
StringBuilder
。阅读更多

我无法理解使用StringBuilder时的
w-=-1

private static void printArray(String[] array) {
    StringBuilder sb = new StringBuilder();
    for(int i = 0; i < array.length; i++) {
        if(i > 0 && i % 4 == 0) {
            sb.append("\n");
        }
        sb.append(array[i]);
        sb.append(" ");
    }
    System.out.println(sb);
}
私有静态void打印数组(字符串[]数组){
StringBuilder sb=新的StringBuilder();
for(int i=0;i0&&i%4==0){
某人附加(“\n”);
}
sb.append(数组[i]);
某人加上(“”);
}
系统输出打印LN(sb);
}

w-=-1
我是说是的,但在
w
中添加一个是一种奇怪的方式。你得到了什么输出,你期望得到什么输出?为什么会出现这种奇怪的循环?为什么
w
不从0开始,为什么使用
w-=-1
而不是使用
w++
?此代码有什么问题?不,不要在注释中添加信息。取而代之的是问题,在那里添加信息-格式正确-并且使用注释仅让我们知道您已经向问题添加了信息。注释不用于代码或格式化输出。
private static void printArray(String[] array) {
    StringBuilder sb = new StringBuilder();
    for(int i = 0; i < array.length; i++) {
        if(i > 0 && i % 4 == 0) {
            sb.append("\n");
        }
        sb.append(array[i]);
        sb.append(" ");
    }
    System.out.println(sb);
}