2014-12-04 82 views
0

新生试图在这里学习java。有一个关于数组的问题,我无法为我的生活工作。问题的最终目的是输出一个一维整数数组(其大小将由用户指定),并将数字转换为星号。通过事故增加一个数组?

因此,例如输出应该是这样的:

中国**** 古巴**(如新行) 关岛*****(作为新行)

的字符串名称也存储在一个单独的数组中。

这里是我有什么:

String[] countryList = new String[country]; 
int[] numVisits = new int[country]; 

System.out.println("Here is another look of your data:"); 
    StringBuilder asteriskConvert = new StringBuilder(); 
    for (int index = 0; index < countryList.length; index++) 
    { 
     System.out.println(countryList[index] + " " + asteriskConvert.toString()); 
     for (int i = 0; i < numVisits[index]; ++i) 
     { 
      asteriskConvert.append("*"); 
     } 
    } 

我知道这个问题有增量的事情。它将第一个数据集的数字与第二个数据集相加,依此类推。我不太确定如何解决这个问题,而且我一直把头发拉出来。

任何指导将不胜感激!谢谢!

这是你的程序看:
多少个国家中有你参观?:2
输入您访问过的两个国家:
中国
古巴
现在进入的次数你访问的每个国家:
这里是你的数据的另一个样子:

中国**
古巴***** ---这是问题 - 它是将上述数量

哇,你走过了很多!

+0

我不能见你incrememting事情不止一次。你必须更具体。预期的结果是什么?你看到了什么呢? – Joehot200 2014-12-04 14:57:18

+0

将'*'附加到字符串生成器中,以便'*'列表不断增长。 – Smutje 2014-12-04 14:59:18

回答

3

您不重新初始化StringBuilder,因此它不断增长。在每个国家的循环内重置它以获得新的计数。

print语句也需要移到innerloop之后,因为我们事先重置了StringBuilder。

String[] countryList = new String[country]; 
int[] numVisits = new int[country]; 

System.out.println("Here is another look of your data:"); 
    StringBuilder asteriskConvert; 
    for (int index = 0; index < countryList.length; index++) 
    { 
     asteriskConvert = new StringBuilder(); 
     for (int i = 0; i < numVisits[index]; i++) 
     { 
      asteriskConvert.append("*"); 
     } 
     System.out.println(countryList[index] + " " + asteriskConvert.toString()); 
    } 

应导致:

中国**

古巴***

的结果仍是:

**

中国***

古巴

这意味着:

"".equals(countryList[0]) 
"China".equals(countryList[1]) 
"Cuba".equals(countryList[2]) 

numVisits[0] == 2 
numVisits[1] == 3 
numVisits[2] == 0 
+0

是的 - 抱歉哈利,但我不确定是否正确。我以某种方式获得输出,以便将一行星号放在字符串上方。 – 2014-12-04 15:10:25

+0

是的它是输出:像这样***(一行)国家****(一行)国家(一行)。星号应该是多一行。 – 2014-12-04 15:20:06

+0

我也将输出语句移到了numVisits循环之后。你知道吗? – 2014-12-04 15:20:56

0

尝试这样的:

String[] countryList = new String[country]; 
int[] numVisits = new int[country]; 

System.out.println("Here is another look of your data:"); 

for (int index = 0; index < countryList.length; index++){ 
    StringBuilder asteriskConvert = new StringBuilder();  
     for (int i = 0; i < numVisits[index]; ++i){ 
      asteriskConvert.append("*"); 
     } 
    System.out.println(countryList[index] + " " + asteriskConvert.toString()); 
} 
+0

感谢您的尝试,但输出是哈利的上面相同。一串星号放置在一个字符串上方。一个字符串旁边没有星号。它应该像我上面编辑的那样。不过谢谢。 – 2014-12-04 15:12:59