dart - 比较列表中的字符串

标签 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的字符。空格不删除!

最佳答案

我还注意到,在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上进行测试

关于dart - 比较列表中的字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52872822/

相关文章:

charts - 在图表中格式化和本地化日期标签_flutter时间序列图

timer - dart:在给定时间后停止收听流

dart - Angular Dart的调试已停止在PhpStorm中工作

javascript - Dart vs JavaScript——它们是编译语言还是解释语言?

flutter_bloc : ^6. 1.1 不改变状态

android - 如何在 flutter 中规范化 [-1, 1] 之间的数据

dart - 使用 Polymer-Dart 和 Dart 对象进行数据绑定(bind)

flutter - 抖动问题中的HTTP调用类型强制转换错误

dart - 有没有办法在 DefaultTabController 中添加监听器?

使用 Agora Flutter 来电视频/音频调用通知