2012-10-05 155 views
3

我知道這只是一個簡單的Java數組的問題,但我沒有任何想法如何做this.What我想做的事情是這樣的:Java數組打印星號

學生   分數   圖
約翰                            * **
馬克                            **
詹姆斯                        *

我心目中是一個這樣的數組:

String[][] students = { { "John", "Mark", "James" }, { "3", "2", "1" } }; 

我將如何打印線圖,而不在陣列中添加另一組變量?我希望它只根據分數顯示星號(*)。

回答

2

你可以做類似下面

String[][] students = { { "John", "Mark", "James" }, { "3", "2", "1" } }; 
    for (int i = 0; i < students[0].length; i++) { 
     StringBuilder asterix = new StringBuilder(); 
     for (int acnt = 0; acnt < Integer.parseInt(students[1][i]); acnt++) 
      asterix.append("*"); 
     System.out.printf("%s\t%s\t%s", students[0][i], students[1][i],asterix.toString()); 
     System.out.println(); 
    } 

輸出

John 3 *** 
Mark 2 ** 
James 1 * 
+0

嗨嘗試過你的代碼,但它只給了我3個johns,2個mark和1個詹姆斯? –

+0

@bEtTyBarnes只需複製粘貼並嘗試。它按照你的問題工作。 ***爲約翰,**爲馬克和*爲詹姆士 –

+0

哦,因爲我關閉了System.out.println()下面的內部循環; –

2

是否這樣?

int gradeAsInt = Integer.parseInt (students [1][n]); 
for (int i = 0; i < gradeAsInt; ++i) System.out.print ("*"); 
+0

注意[的Integer.parseInt()](http://docs.oracle.com/javase/6 /docs/api/java/lang/Integer.html#parseInt(java.lang.String))可用於將字符串轉換爲可在for循環中使用的數字。 – Lalaland

+0

什麼是[n]? –

+0

它是數組對象的索引。 –