改变二维数组中值之间的间距


import java.util.*;
import java.io.*;
public class GradeBook
{
public static void main(String[] args) 
{
System.out.println("Starting programnn");
String[] STUDENT_NAMES = new String[] {"Adams", "Baker", "Campbell", "Dewey", "East"};
int[][] STUDENT_GRADES = new int[5][3];

loadGradeArray(STUDENT_GRADES);

for (int i = 0; i < STUDENT_NAMES.length; i++) 
{
System.out.printf("%s %d %d n", STUDENT_NAMES[i], STUDENT_GRADES[i][0], STUDENT_GRADES[i][1]);
}


} //end main

public static void loadGradeArray(int[][] STUDENT_GRADES)
{
for(int row = 0; row<STUDENT_GRADES.length; row++)
{
for(int col = 0; col<STUDENT_GRADES[row].length; col++)
{
STUDENT_GRADES[0][0] = 75;
STUDENT_GRADES[0][1] = 75;
STUDENT_GRADES[1][0] = 100;
STUDENT_GRADES[1][1] = 75;
STUDENT_GRADES[2][0] = 84;
STUDENT_GRADES[2][1] = 75;
STUDENT_GRADES[3][0] = 80;
STUDENT_GRADES[3][1] = 75;
STUDENT_GRADES[4][0] = 50;
STUDENT_GRADES[4][1] = 75;
}
}
}
}

课堂作业让我为五个学生制作一本成绩簿,上面列出了他们的名字和两个考试成绩。完成后,用户可以选择打印学生的平均成绩,或者打印考试的班级平均成绩

我在成绩书中设置值之间的间距时遇到了麻烦。我想让数字均匀地向右对齐,像这样:

Adams _______75 75 
Baker _______100 75 
Campbell _____84 75 
Dewey _______80 75 
East _________50 75 

忽略'_'。不确定如何格式化

使用下面的代码打印数据

System.out.printf("%-10s %d %d n", STUDENT_NAMES[i], STUDENT_GRADES[i][0], STUDENT_GRADES[i][1]);

查看完整的代码和输出在这里

public class GradeBook
{
public static void main(String[] args)
{
System.out.println("Starting programnn");
String[] STUDENT_NAMES = new String[] {"Adams", "Baker", "Campbell", "Dewey", "East"};
int[][] STUDENT_GRADES = new int[5][3];
loadGradeArray(STUDENT_GRADES);
for (int i = 0; i < STUDENT_NAMES.length; i++)
{
System.out.printf("%-10s %d %d n", STUDENT_NAMES[i], STUDENT_GRADES[i][0], STUDENT_GRADES[i][1]);
}

} //end main
public static void loadGradeArray(int[][] STUDENT_GRADES)
{
for(int row = 0; row<STUDENT_GRADES.length; row++)
{
for(int col = 0; col<STUDENT_GRADES[row].length; col++)
{
STUDENT_GRADES[0][0] = 75;
STUDENT_GRADES[0][1] = 75;
STUDENT_GRADES[1][0] = 100;
STUDENT_GRADES[1][1] = 75;
STUDENT_GRADES[2][0] = 84;
STUDENT_GRADES[2][1] = 75;
STUDENT_GRADES[3][0] = 80;
STUDENT_GRADES[3][1] = 75;
STUDENT_GRADES[4][0] = 50;
STUDENT_GRADES[4][1] = 75;
}
}
}
}

输出
Adams      75 75 
Baker      100 75 
Campbell   84 75 
Dewey      80 75 
East       50 75 

这样做可以使所有内容保持美观、均匀的列状格式:

String[] STUDENT_NAMES = new String[]{"Adams", "Baker", "Campbell", "Dewey", "East"};
int[][] STUDENT_GRADES = new int[5][3];
loadGradeArray(STUDENT_GRADES);
String header = String.format("%-10s %7s %8s", "Name", "Class-1", "Class-2");
String underline = String.join("", java.util.Collections.nCopies(header.length(), "-"));
System.out.println(underline);
System.out.println(header);
System.out.println(underline);

for (int i = 0; i < STUDENT_NAMES.length; i++) {
System.out.printf("%-10s %5d %8d%n", STUDENT_NAMES[i], STUDENT_GRADES[i][0], STUDENT_GRADES[i][1]);
}

输出到控制台窗口应该看起来像:

---------------------------
Name       Class-1  Class-2
---------------------------
Adams         75       75
Baker        100       75
Campbell      84       75
Dewey         80       75
East          50       75