新学生试图在这里学习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
输入您访问过的2个国家/地区:
中国
古巴
现在输入您访问每个国家/地区的次数:
2
3
以下是您的数据的另一种外观:
中国**
古巴***** ---这是问题 - 它增加了上述数字
哇,你旅行很多!
答案 0 :(得分:3)
您没有重新初始化asteriskConvert
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
答案 1 :(得分: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());
}