【发布时间】:2014-09-12 21:37:16
【问题描述】:
我应该比较 arraylist(String) 中的字符,然后如果所有字符串都有公共字符或字符或没有公共字符,我必须显示 arraylist 的所有字符串中的公共字符数。 这是我的功能:
public void theElementor(ArrayList<String> x) {
char a;
ArrayList<String> store = new ArrayList<String>();
for (int i = 0; i <= x.size(); i++) {
for (int j = x.size()-1; j > i; j--) {
for (int l = 0; l < x.get(j).length(); l++) { \\error here
if (x.get(i).contains(
Character.toString(x.get(j).charAt(l)))) {
a = x.get(j).charAt(l);
store.add(Character.toString(a));
}
}
}
}
for (String element : store) {
System.out.println(element);
}
}
我已经弄清楚了这么多,我不再收到我之前遇到的错误,但仍然无法获得我输入的所有字符串中常见的一个或多个字符。
【问题讨论】:
-
如果
int j = x.size()那么x.get(j)将产生错误。你需要从 size - 1 开始。 -
这一行有点奇怪:
x.remove(j).charAt(l);。为什么对刚刚删除的条目执行charAt,然后不使用该值? -
@HotLicks 我也试过了,现在当第三个循环运行并且 if 语句成立时,我得到了同样的错误。
-
@HotLicks 谢谢你,我明白了,我正在上传修改后的代码,第三个 for 循环仍然出错