我目前有两个列表:
List<String> listUserAnswers = splitWords(answer);
List<String> listRealAnswers = splitWords(realAnswer);
我的主要目标是遍历这些并根据数据创建不同的视图。例如,对于每个correctAnswer,我将创建一种视图,而对于wrongAnswer,则创建另一种视图。
然后我遍历两个列表:
for (String userAnswer : listUserAnswers) {
for (String realAnswer : listRealAnswers) {
if (userAnswer.equals(realAnswer)) {
correctLayout = createCorrectView(userAnswer);
newCorrectViews.add(correctLayout);
} else {
incorrectLayout = createIncorrectView(userAnswer);
newIncorrectViews.add(incorrectLayout);
}
}
}
然后我检查userAnswer是否与realAnswer匹配,然后创建视图。
然而,我遇到的问题是,如果realAnswer是:
[This, Is, The, Real, Answer]
并且用户输入:
[This, Is, Real]
然后前两个单词应该在屏幕上显示为正确,并且单词&#39; Real&#39;不正确。
然而,实际发生的是:
[This, Is, This, This, Is, Is, Real, Real]
- &gt;其中[This, Is]
是正确的,其余的被标记为不正确。
有什么想法吗?
答案 0 :(得分:1)
你不应该有内循环。你只需要一个循环,所以不要使用增强的。
您可以使用以下内容:
minSize = listUserAnswers.size() > listRealAnswers.size() ? listUserAnswers.size() : listRealAnswers.size();
for(int i = 0; i < minSize; i++)
String userAnswer = listUserAnswers.get(i);
String realAnswer = listRealAnswers.get(i);
if(userAnswer.equals(realAnswer))
....
只检查同一位置的实际单词。