对于我的代码,我需要显示输入的项目数量,例如,如果输入香蕉、香蕉、酸奶,则总数将为 3,香蕉 x2,酸奶 x1 我正在为输出而苦苦挣扎。我知道有一种更简单的方法可以使用 HashMap 来执行此操作,但我不想使用它,因为我还没有了解它。 好吧,我把计数器放在循环内,但如果我输入大米,大米,大米,很多大米,我希望我的输出是大米 x3,很多大米 x1,但我得到的是大米 x2 RIce x2?
public static void main(String[] args) {
ArrayList<String> list = new ArrayList<String>();
System.out.println("Enter want you want to purchase:");
Scanner read= new Scanner(System.in);
String item = read.nextLine();
while(!item.equals("stop")) {
list.add(item);
item = read.nextLine();
}
System.out.println("Total items: " +list.size());
for(int i=0; i<list.size(); i++) {
int count = 0;
System.out.print(list.get(i) + "x");
for(int j=0; j<list.size(); j++){
if(list.get(i).equalsIgnoreCase(list.get(j)))
count++;
if(list.get(i).equalsIgnoreCase(list.get(j)) && count>1)
list.remove(j);
}
System.out.println(count);
最佳答案
在计算新元素的出现次数时,您忘记将计数器变量 count
重置为 0:
...
System.out.println("Total items: " + list.size());
for (int i = 0; i < list.size(); i++) {
int count = 0; // Initialize the count variable here
...
(有道理,因为您只将 count
设置为 0 一次,这意味着它只会不断增加...)
关于java - 我的代码中每个商品的数量结果有什么问题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40557264/