如何在飞镖中将字符串分成 key/value 对?

how separate string into key/value pair in dart?

如何在 dart 中将字符串分成 key/value 对?该字符串由 "=" 分隔。以及如何提取对值?

    main(){
  
  var stringTobeSeparated = ['ab = cd','ef = gh','ld = kg'];

Map<String ,dynamic> map = {};
    for (String s in stringTobeSeparated) {
          var keyValue = s.split("=");
    //failed to add to a map , to many positiona arguments error
         map.addAll(keyValue[0],keyValue[1]);
      
        
        }
}

split() 函数给你一个字符串列表,所以你只需要检查这个列表的长度是否等于 2,然后你可以像这样在 Map 中添加这些值:

Map<String, String> map = {};
for (String s in stringTobeSeparated) {
    var list = s.split("=");
    if(list.length == 2) {
        // list[0] is your key and list[1] is your value
        map[list[0]] = list[1];
    }
}

您可以为此使用 map,已接受的答案是正确的,但由于您的字符串看起来像这样

var stringTobeSeparated = ['ab = cd','ef = gh','ld = kg'];

我宁愿使用正则表达式从最终结果中删除空格(用 split 替换行):

var list = s.split(RegExp(r"\s+=\s+"));