2012-10-05 113 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

它是数组对象的索引。 –