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