#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 "));