如何在 Java 中将输出格式化为表



我正在尝试为成绩报告制作一个表格,它应该有 5 列,分别是班级、描述、单位、成绩和绩点。但是,我无法使输出彼此对齐。我只是简单地使用"\t"。有没有办法在 Java 中将输出作为表?

import java.util.*;
public class Project1_Trial2 {
    public static void main(String args[])
    {
        Scanner scanner = new Scanner(System.in);
        //Input the term
        System.out.println("Please enter the term of your grade calculation (for example, Fall 2015): ");
        String term = scanner.nextLine();
        //Input the number of courses that the student is enrolled in
        System.out.println("Please enter the number of courses that you are enrolled in "+term+": ");
        int numberofcourses = scanner.nextInt();
        //Declaration
        String ClassName[] = new String[numberofcourses];
        String Description[] = new String[numberofcourses];
        String Grade[] = new String[numberofcourses];
        int Units[] = new int[numberofcourses];
        //Arrays for class number, description, units, grade, grades point
        //Here, input class number, description, units, and grades
        for(int i = 0; i < numberofcourses; i++)
        {
            scanner.nextLine();
            System.out.println("Please enter your #"+(i+1)+" class name: ");
            ClassName[i] = scanner.nextLine();
            System.out.println("Please enter your #"+(i+1)+" class description: ");
            Description[i] = scanner.nextLine();
            System.out.println("Please enter your #"+(i+1)+" class units: ");
            Units [i] = scanner.nextInt();
            System.out.println("Please enter your #"+(i+1)+" class grade: ");
            Grade[i] = scanner.nextLine();
        }
        System.out.println("Class Grades - "+term+" Term");
        System.out.println("Office Grades");
        System.out.println("Class t t Description t t Units t t Grade t t Grade Points");
        for(int i = 0; i < numberofcourses; i++)
        {
        System.out.println(ClassName[i]+"t t"+Description[i]+"t t"+Units[i]+"t t"+Grade[i]);
        }
    }
}

有多种方法可以对齐您的输出,以便它们均匀对齐。一种方法是替换您放置的位置:

System.out.println(ClassName[i]+"t t"+Description[i]+"t t"+Units[i]+"t t"+Grade[i]);

跟:

System.out.printf("%-15s %-15s %-15s ",ClassName[i],Description[i],String.format("%5d", Units[i]),Grade[i]);

而不是使用System.out.println()使用System.out.printf()这样,您可以填充字符串并在 printf() 函数中使用String.format()来填充带有空格的整数......您可以将我的填充调整为您认为合适的任何内容这是一种更有效的方法,而不是经常使用选项卡

最新更新