问题描述
final family = '\u{1F468}\u{200D}\u{1F469}\u{200D}\u{1F467}'; // ???
final myString = 'Let me introduce my $family to you.';
而且我知道家庭表情符号(空格)后字符的字符串索引是28
,我如何找到家庭表情符号的第一个代码单元的字符串索引?换句话说,如何在 UTF-16 代码单元中找到家庭表情符号的长度?
我之前问过 similar question,但那是在 characters 包出现之前。有什么办法可以将字形簇索引映射到字符串索引吗?
我问的原因是我想通过 Flutter TextField 中的字素簇以编程方式退格。
解决方法
似乎 String.characters 为您提供了每个元素一个字素簇的列表。只需使用文档 (https://pub.dev/documentation/characters/latest/characters/CharacterRange-class.html) 中描述的范围一次删除一个字符的内容。