2015-04-12 23 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); 

這將返回大小「長度」的字符串用「字符串」填充其餘部分,並用空格填充長度