【发布时间】:2020-05-30 17:41:36
【问题描述】:
我有一个 ArrayList list1,其中包含以下值:{“A”、“A”、“A”、“B”、“B”、“A”、“C”、“C”、“B” , "B", "B"}.
我想计算每个字母(A、B 和 C)在 list1 中重复的次数。
我做了以下,但是结果是0。
for (i=0; i<=list1.size(); i++) {
switch (list1.get(i)) {
case "A":
LetterA = LetterA + 1;
case "B":
LetterB = LetterB + 1;
case "C":
LetterC = LetterC + 1;
}
}
Toast.makeText(getApplicationContext(), "Letter A repeats: " + LetterA + " times" + "\nLetter B repeats: " + LetterB + " times" +
"\nLetterC repeats: " + LetterC + " times", Toast.LENGTH_LONG).show();
更新:问题是我不小心遍历了 list1 而不是 list2,它实际上包含了字母。但是,即使我更改了它,它仍然显示不正确的值。因此我将switch 更改为:
for (i=0; i<=list2.size(); i++) {
if (list2.get(i).equals("A")) {
LetterA = LetterA + 1;
} else if (list2.get(i).equals("B")) {
LetterB = LetterB + 1;
} else if (list2.get(i).equals("C")) {
LetterC = LetterC + 1;
}
}
现在一切正常。
【问题讨论】:
-
您是如何初始化 ArrayList 或如何将项目添加到 arrayList 的?
-
所以基本上你在循环之后得到了什么值?都是零吗?
-
您的代码应该会崩溃,因为您使用的是 i=0; i
-
不,这也解决不了问题……如果我没记错,它仍然会给你零,是的,检查后更新我
-
我假设它本身没有进入循环......你不能发布完整的代码吗?我建议这样做..如果可能的话
标签: android android-studio arraylist switch-statement