Java中两个表的水平对齐

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

我需要打印以下输出:

J   R   F   M   O   M   A   Z   S    1  7  8  6  2  7  3  9  8  1
B   C   X   Y   P   C   S   T   P    1  3  4  6  8  7  2  9  2  3
G   D   C   G   D   B   F   R   T    4  6  7  8  3  1  1  3  0  3 
K   R   Q   L   B   U   A   M   A    3  6  3  1  2  3  1  2  3  1 
X   P   D   T   F   X   T   C   Z    4  3  7  9  0  6  2  6  7  8 
Q   K   G   X   W   E   R   J   V    6  1  3  5  7  6  7  8  9  9     
Q   C   P   D   G   U   L   J   X    1  6  3  1  2  3  1  2  3  1 
Z   J   N   S   V   S   F   H   G    6  3  7  9  0  6  2  6  7  8
P   T   C   D   H   H   R   G   W    9  3  7  9  0  6  2  6  7  8
M   T   P   B   N   E   S   D   Y    0  3  7  9  0  6  2  6  7  8

因此,使用Math.random方法,我可以生成随机数字和随机字母...但是我无法以上述示例中的方式对齐它们。这是我的代码:

public class AlignmentOfRandCharacters {

    static char getRandomChar() {
        char ch = (char) ('A' + (Math.random() * ('Z' - 'A' + 1)));

        return ch;
    }

    static char getRandomDig() {
        char ch = (char) ('0' + (Math.random() * ('9' - '0' + 1)));

        return ch;

    }

    public static void main(String[] args) {
        for (int i = 0; i <= 100; i++) {

            if (i % 10 != 0) {
                System.out.print(getRandomChar() + "  " + getRandomDig());
            } else {
                System.out.println();
            }

        }
    }

}

这里是输出:


J  5E  6J  5J  2R  3N  5Q  5F  8S  3
G  8E  2G  3Q  4V  4I  4I  1Q  1M  3
B  3E  0I  9V  2V  7K  5A  1G  9D  1
N  8S  5R  6U  7U  7E  7G  9G  1S  5
Y  7R  0A  3H  3M  3X  1N  1U  3M  9
T  8Y  0Q  5Q  3C  5H  6V  5R  3R  1
D  0D  8X  6E  4N  8Q  4R  9Y  9J  2
N  8X  0P  8J  7K  9J  3G  9S  9B  0
P  2M  5W  5C  0K  1N  2T  5E  1R  8
E  4C  7E  8E  7T  5A  5S  1B  4P  3

我绝对确定答案是表面上的,但我看不到。感谢您的帮助

java for-loop random alignment
1个回答
1
投票

您可以为每10次迭代存储数字,完成10个字母后,打印数字,然后再次进行

StringBuilder digits = new StringBuilder();
for (int i = 0; i <= 100; i++) {
    if (i % 10 != 0) {
        System.out.print(getRandomChar() + "  ");
        digits.append(getRandomDig()).append("  ");
    } else {
        System.out.println(digits); // PRINT DIGITS
        digits = new StringBuilder();
    }
}

在第[[打印数字]行,如果要在两个矩阵之间使用空格,请使用System.out.println(" " + digits.toString());

© www.soinside.com 2019 - 2024. All rights reserved.