description

# splitMapJoin abstract method

String splitMapJoin(

1. Pattern pattern, {
2. String onMatch(
   1. Match
   )?,
3. String onNonMatch(
   1. String
   )?,

})

Splits the string, converts its parts, and combines them into a new string.

The `pattern` is used to split the string into parts and separating matches. Each match of Pattern.allMatches of `pattern` on this string is used as a match, and the substrings between the end of one match (or the start of the string) and the start of the next match (or the end of the string) is treated as a non-matched part. (There is no omission of leading or trailing empty matchs, like in split, all matches and parts between the are included.)

Each match is converted to a string by calling `onMatch`. If `onMatch` is omitted, the matched substring is used.

Each non-matched part is converted to a string by a call to `onNonMatch`. If `onNonMatch` is omitted, the non-matching substring itself is used.

Then all the converted parts are concatenated into the resulting string.

    final result = 'Eats shoots leaves'.splitMapJoin(RegExp(r'shoots'),
        onMatch: (m) => '${m[0]}', // (or no onMatch at all)
        onNonMatch: (n) => '*');
    print(result); // *shoots*

## Implementation

    String splitMapJoin(
      Pattern pattern, {
      String Function(Match)? onMatch,
      String Function(String)? onNonMatch,
    });