2015-04-12 21 views
1

所以我有一个程序,每次用户输入他的成绩和其他数据时,它应该按照最高和最低分数正确对齐。我做了下面的示例代码:对齐和排序数据java

 String[] names={"girlA","girlB","boyC"}; 
     String[] gradeLevel={"8th grade","10th grade" , "7th grade"}; 
     double[] grades={78.9,23.2,65.7}; 

    System.out.println("Name of Student"+ "\t" + "Grade Level"+ "\t"+ "Grades"); 
    for(int i=0;i<3;i++){ 
     System.out.println(names[i]+"\t"+ gradeLevel[i]+ "\t"+ grades[i]); 
    } 

它应该是这样的:

enter image description here

如何正确对齐它们不使用“\ t”和我如何从最高的等级排序以最低的名字与他们的名字相应的安排等级?

+2

使用对象!并行数组是一种显示对象恐惧症的反模式。 –

+0

关于打印输出的对齐方式,我建议您查看[格式化程序](https://docs.oracle.com/javase/7/docs/api/java/util/Formatter.html#syntax)。 – moarCoffee

+0

你应该把你的两个问题分成两个帖子。我不认为文本格式与排序有关。 –

回答

1

我不知道问题的范围,但如果可能的话,我会建议创建一个对象,像Student一样,包含这三个字段。然后,您可以根据成绩对学生列表进行排序,并且始终知道该对象的名称和级别。
关于适当地对准他们,如果你不希望使用的标签标签你可以看看String.format方法,做这样的事情:

String.format("%1$"+length+ "s", string); 

这将返回大小“长度”的字符串用“字符串”填充其余部分,并用空格填充长度