从String构建映射

时间:2014-04-30 16:13:19

标签: dart

我使用Process.run执行ldapsearch。然后,我从stdout得到一个如下所示的字符串:

user: demo
first-name: demo
picture: trewtrewtrwrwgr
grewgrwgrwgrewgrwegrwe==

我可以从现有方法中简单地执行Map,还是必须创建一个?

谢谢。

1 个答案:

答案 0 :(得分:2)

转换您的参赛作品:

String datas = '''user: demo
first-name: demo
picture: trewtrewtrwrwgr
grewgrwgrwgrewgrwegrwe==''';
final lines = datas.split('\n').fold([], (List<String> lines, line) {
  if (line.contains(':')) lines.add(line);
  // merge line that does not contain ":" with the previous
  else lines.add(lines.removeLast() + '\n' + line);
  return lines;
});
final m = new Map.fromIterable(lines.map((e) => e.split(':')),
    key: (e) => e[0].trim(),
    value: (e) => e[1].trim());

从未尝试过:您还可以使用dartdap(用于Dart的LDAP客户端库)。