无法获得平均值正确对齐

问题描述:

更多hw问题:D我需要有平均值对齐。我试过了,但学生的名字长短不一,使用printf的作品在某种程度上有效,但名字比其他人长,但他们没有排队。我不知道如何让他们被一字排开无法获得平均值正确对齐

System.out.println("You Chose Student Average\n"); 
       int avg; 

       while(inFile.hasNext()) 
       { 
        name = inFile.next(); 
        test1 = inFile.nextInt(); 
        test2 = inFile.nextInt(); 

        avg = (test1 + test2)/2; 

        System.out.print(name); 
        System.out.printf("%14d\n", avg); 
       } 
       System.out.print("\n"); 

然后这里是平均输出:

Robert   76 
Joel   57 
Alice   96 
Jasmine   84 
Larry   55 
Elizabeth   82 
Frank   70 
Christine   28 
Alex   26 
Ariel   82 
Luis   71 
Nicole   64 
Mitch   92 
Randy   87 
Tammy   87 
Sarah   74 
Samuel   73 
Lauren   59 
Deanna   98 
Mathew   93 
Justin   72 
Beth   95 
Rebecca   84 
Paul   54 
Lucy   45 

什么办法呢?

+0

我们不会做你的功课,你 – Khalil 2013-04-23 22:57:04

+0

不问这样做对我,但我不知道如何修复它 – XanderXIV 2013-04-23 22:57:48

+0

@ user2297156我在下面给出了答案。同样,当你提出一个问题时,不要只是等待至少30分钟。 – 2013-04-24 00:51:47

您可以使用字符串格式化不仅仅是整数。 http://docs.oracle.com/javase/1.5.0/docs/api/java/util/Formatter.html#syntax

但是,除非你有一个明确定义的最大名称长度,否则我认为你可以做的最好的是检查最大名称长度,然后为所有其他名称添加空格,直到它们匹配。

尝试使用“\ t”。像:

System.out.println("Name: \t" + average); 

编辑

由于您使用printf尝试:

System.out.printf("%14d \t \n", avg);