一个可能的解决方案如下:
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
int[] array = new int[7];
System.out.print("Enter number of rolls: ");
int roll = input.nextInt();
System.out.printf("%-12s%-12s%-12s\n", "#", "Count", "Freq");
for (int i = 1; i <= roll; i++) {
array[(int) (6 * Math.random()) + 1]++;
}
for (int a = 1; a < array.length; a++) {
double percentage = ((double) array[a] / roll) * 100;
System.out.printf("%-12d%-12d%5.2f%%\n", a, array[a], percentage);
}
System.out.printf("%-12s%-14s%-12s\n", "Total", roll, "100%");
}
Integer格式化
%d : will print the integer as it is.
%6d : will print the integer as it is. If the number of digits is less than 6, the output will be padded on the left.
%-6d : will print the integer as it is. If the number of digits is less than 6, the output will be padded on the right.
%06d : will print the integer as it is. If the number of digits is less than 6, the output will be padded on the left with zeroes.
%.2d : will print maximum 2 digits of the integer.
String格式化
%s : will print the string as it is.
%15s : will print the string as it is. If the string has less than 15 characters, the output will be padded on the left.
%-6s : will print the string as it is. If the string has less than 6 characters, the output will be padded on the right.
%.8d : will print maximum 8 characters of the string.
Floating点格式化
%f : will print the number as it is.
%15f : will print the number as it is. If the number has less than 15 digits, the output will be padded on the left.
%.8f : will print maximum 8 decimal digits of the number.
%9.4f : will print maximum 4 decimal digits of the number. The output will occupy 9 characters at least. If the number of digits is not enough, it will be padded
完整教程here https://examples.javacodegeeks.com/core-java/lang/string/java-string-format-example/.