parseKeyValuePairs method

  1. @useResult
Map<String, String> parseKeyValuePairs()

Parses simple key=value pairs separated by whitespace into a map.

Keys and values are trimmed. Pairs without '=' are skipped or use empty value (configurable). Duplicate keys: later wins.

Returns a map from key to value for each key=value pair.

Example:

'a=1 b=2'.parseKeyValuePairs();  // {'a': '1', 'b': '2'}

Implementation

@useResult
Map<String, String> parseKeyValuePairs() {
  if (isEmpty) return <String, String>{};
  final Map<String, String> out = <String, String>{};
  for (final String part in trim().split(RegExp(r'\s+'))) {
    if (!part.isEmpty) {
      final int eq = part.indexOf('=');
      if (eq >= 0) {
        final String key = part.substringSafe(0, eq).trim();
        final String value = part.substringSafe(eq + 1).trim();
        if (key.isNotEmpty) out[key] = value;
      }
    }
  }
  return out;
}