unescapeString function

String unescapeString(
  1. String value
)

Unescapes a string by processing escape sequences.

Handles \n, \t, \r, \\, and \" escape sequences.

Implementation

String unescapeString(String value) {
  final StringBuffer result = StringBuffer();
  int i = 0;

  while (i < value.length) {
    if (value[i] == backslash) {
      if (i + 1 >= value.length) {
        throw FormatException(
            'Invalid escape sequence: backslash at end of string');
      }

      final String next = value[i + 1];
      switch (next) {
        case 'n':
          result.write(newLine);
          i += 2;
          continue;
        case 't':
          result.write(tab);
          i += 2;
          continue;
        case 'r':
          result.write(carriageReturn);
          i += 2;
          continue;
        case backslash:
          result.write(backslash);
          i += 2;
          continue;
        case doubleQuote:
          result.write(doubleQuote);
          i += 2;
          continue;
        default:
          throw FormatException('Invalid escape sequence: \\$next');
      }
    }

    result.write(value[i]);
    i++;
  }

  return result.toString();
}