我想匹配同一列表中的两个字符串。我想从字符串中获取单词并将其插入列表。我要删除空格并以逗号分隔。然后我要检查该列表中的两个字符串是否匹配。
这是我的代码:
main() {
List<String> list = new List();
String str = "dog , dog , cat, tiger, lion, cat";
String strn = str.replaceAll(" " , "");
list = strn.split(",");
print(list.length);
print(list);
for (int i=0;i<list.length;i++){
if (list[i] == list[i+1]) {
print("same");
} else{
print("not same");
}
i++;
}
}
此处字符串仅检查长度不超过4的字符,并且空格未删除!
答案 0 :(得分:1)
我还注意到,在for
循环中,您将i
递增两次,第二次接近底部。这会导致i
跳过某些索引,因此循环会先看索引0,然后看2,然后看4,然后停止。
我已经稍微重构了您的解决方案。我删除了第二个i++
并将i < list.length
更改为i < list.length - 1
以跳过最后一个项目,因为list[i + 1]
将引发超出范围的异常:
main() {
List<String> list = new List();
String str = "dog , dog , cat, tiger, lion, cat";
String strn = str.replaceAll(" ", "");
list = strn.split(",");
print(list.length);
print(list.join('|'));
for(int i=0; i < list.length - 1; i++){
if(list[i] == list[i+1]){
print("same");
}
else{
print("not same");
}
}
}
循环的结果如下:
same
not same
not same
not same
not same
您可以在DartPad
上进行测试