将原始字符串转换为字符串

时间:2019-07-18 13:11:27

标签: flutter dart

一个人可以用创建一个原始字符串

String raw = r'\n\n\n';

但是如何将该原始字符串解释为普通字符串?在这种情况下,它将是三个换行符。

我可以用一个接一个地替换字符

String unRaw = raw.replaceAll(r'\n', '\n');

但是不幸的是,我必须在每个转义序列中都这样做,这容易出错。

上下文:我通过文本字段从用户那里获取原始字符串,并希望将其解释为普通字符串。

1 个答案:

答案 0 :(得分:1)

我认为没有直接方法可以执行此操作,请检查this。有第三方package声称愿意这样做。

但是,我认为可以通过在您的案例中使用jsonDecoder来解决此问题。

jsonDecoder也可以解码字符串,因此构造一个原始json,然后对其进行解码以获取您的字符串。

示例:

import 'dart:convert';

main(){
    String value = r'a\nb';
    print(value); // prints raw string
    value = jsonDecode(r'{ "data":"'+value+r'"}')['data']; // converted to escaped string
    print(value); // prints a & b in different lines
}

希望有帮助!