java - 数组意外增加两次?

标签 java arrays

新学生想在这里学习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
这是您的数据的另一个外观:

中国**
古巴 ***** ---这就是问题 - 它添加了上面的数字

哇,你旅行了很多次!

最佳答案

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

打印语句也需要移动到内循环之后,因为我们事先重置了 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());
    }

应该导致:

China **

Cuba ***

结果仍然是:

**

China ***

Cuba

这意味着:

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

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

关于java - 数组意外增加两次?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27297054/

相关文章:

java - 如何从Android studio/java中的drawable文件夹中获取图像的内部url?

c - 如何从现有字符串中存储整数

javascript - 如何将 python 中的字符串变量转换为 javascript 文字数组?

c++ - C++ 枚举中的数组

c++ - 字符串数组长度 C++ 问题?

java - 如何读取.class文件?

java - 如何将我的程序导出为可运行的桌面文件?

javascript - 如何使用对象名称值访问数组?

java - 在 Java 中将字符串转换为日历对象

java - 如何在使用 cssSelector 清除 Chrome 浏览器的浏览数据时与 #shadow-root (open) 中的元素进行交互