如何在Dart中将String转换为char[]?转换List<char>失败
在Dart中将String转为单个字符的List
Dart里并没有专门的char类型,单个字符本质是长度为1的String,所以你要实现的其实是将String转为List<String>,每个元素对应原字符串的单个字符。
下面是两种常用的实现方式:
方法一:使用split('')(适合普通ASCII字符)
这是最直接的方式,通过空字符串拆分原字符串:
String input = "Hello Dart"; List<String> charList = input.split(''); // 输出结果:['H', 'e', 'l', 'l', 'o', ' ', 'D', 'a', 'r', 't']
方法二:使用runes处理Unicode扩展字符(比如Emoji、特殊符号)
如果你的字符串包含多字节的Unicode字符(比如😊、𝄞这类),split('')会将它们拆分成多个无效的码元,这时候用runes遍历每个Unicode码点再转换:
String input = "Hi 😊"; List<String> charList = input.runes.map((rune) => String.fromCharCode(rune)).toList(); // 输出结果:['H', 'i', ' ', '😊']
你之前尝试转换为char类型的List失败,核心原因就是Dart不存在char类型,换成List<String>就能解决问题。
内容的提问来源于stack exchange,提问作者Manewow
相关产品推荐
相关产品推荐

