所以我有一个如下所示的ArrayList
调用originalList
:
[平底锅,小睡,锅,坐,这是,蒂斯,啪]
我也有一个ArrayList
看起来modifiedList
像
[anps, anps, opst, ist, ist, ist, anps]
修改后的列表采用原始列表,删除标点符号并对其进行排序。该程序的目的是获取输入 ( originalList
) 并查看输入中是否有字谜。字谜是由相同字母组成的单词。我的循环打印出字谜时遇到问题。这是循环:
for (int i=0; i<modifiedList.size();i++){
System.out.print(originalList.get(i));
for (int j=i+1;j<modifiedList.size();j++){
if (modifiedList.get(i).contentEquals(modifiedList.get(j))){
System.out.print(" "+ originalList.get(j));
originalList.remove(j);
modifiedList.remove(j);
}
}System.out.println();
}
当我运行循环时,我得到以下信息:
pans naps snap
pots
sit it's
tis
一切都是正确的,除了 tis 没有被列为 sat 和 it's 的字谜。这是 using modifiedList.remove(j)
which 导致第二个循环在到达 tis 之前退出的原因,并且 tis 永远不会用 sat 和 it's 打印。modifiedList.remove(j) 是必需的,这样单词就不会在输出中重复。我将如何解决这个问题,以便将 tis 列为 sat and it's 的字谜?