比较列表中的字符串

时间:2018-10-18 11:19:51

标签: dart

我想匹配同一列表中的两个字符串。我想从字符串中获取单词并将其插入列表。我要删除空格并以逗号分隔。然后我要检查该列表中的两个字符串是否匹配。

这是我的代码:

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的字符,并且空格未删除!

1 个答案:

答案 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

上进行测试