как разделить строку на пару ключ / значение в dart?

#string #flutter #dart #keyvaluepair

#строка #flutter #dart #keyvaluepair

Вопрос:

как можно разделить строку на пару ключ / значение в dart? Строка разделяется символом "=" . И как можно извлечь значение пары?

     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]);
      
        
        }
}
  

Комментарии:

1. Что не так с тем, что у вас есть?

2. я извлекаю данные из API, мне нужно поместить их в формат парного значения

3. Что мешает вам это сделать?

4. если вы знакомы с Java, можно получить значение ключа после разделения строки. Итак, я прошу аналогичную вещь сделать в dart

5. Вы показываете некоторый код, но не упоминаете результаты этой попытки или почему это не работает.

Ответ №1:

Функция split() выдает вам список строк, поэтому вам просто нужно проверить, равна ли длина этого списка 2, а затем вы можете добавить эти значения в карту, подобную этой:

 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];
    }
}
  

Ответ №2:

Вы можете использовать map для этого принятый ответ правильный, но поскольку ваша строка выглядит следующим образом

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

Я бы предпочел использовать регулярное выражение для удаления пробелов из конечного результата (замените строку на split этим):

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