我有一个字符串列表,我浏览它并计算"x"字符串的数量如下,但计数不打印我预期的值:
ArrayList<Integer> list = new ArrayList<Integer>();
List<String> strings = table.getValue(); //this gives ["y","z","d","x","x","d"]
int count = 0;
for (int i = 0; i < strings.size(); i++) {
if ((strings.get(i) == "x")) {
count++;
list.add(count);
}
}
System.out.println(list);
Run Code Online (Sandbox Code Playgroud)
这给[]它应该是2因为我有2次出现"x"
JRL*_*JRL 13
已有一种现有的方法:
Collections.frequency(collection, object);
Run Code Online (Sandbox Code Playgroud)
在您的情况下,请像这样使用(用此替换所有发布的代码):
System.out.println(java.util.Collections.frequency(table.getValue(), "x"));
Run Code Online (Sandbox Code Playgroud)
您应该使用equals而不是比较字符串==.即改变
if ((list.get(i) == "x"))
^^
Run Code Online (Sandbox Code Playgroud)
至
if ((list.get(i).equals("x")))
^^^^^^
Run Code Online (Sandbox Code Playgroud)
==比较引用,同时.equals比较字符串的实际内容.
相关问题:
| 归档时间: |
|
| 查看次数: |
16561 次 |
| 最近记录: |