convertToMultiPinyin static method
获取多音字拼音 @param str 需要转换的字符串 @param separator 拼音分隔符 @param format 拼音格式 @return 多音字拼音
Implementation
static MultiPinyin? convertToMultiPinyin(
String str, String separator, PinyinFormat format) {
if (str.length < minMultiLength) return null;
if (maxMultiLength == 0) {
List<String> keys = multiPinyinMap.keys.toList();
for (int i = 0, length = keys.length; i < length; i++) {
if (keys[i].length > maxMultiLength) {
maxMultiLength = keys[i].length;
}
}
}
for (int end = minMultiLength, length = str.length;
(end <= length && end <= maxMultiLength);
end++) {
String subStr = str.substring(0, end);
String? multi = multiPinyinMap[subStr];
if (multi != null && multi.isNotEmpty) {
List<String> str = multi.split(pinyinSeparator);
StringBuffer sb = StringBuffer();
str.forEach((value) {
List<String> pinyin = formatPinyin(value, format);
sb.write(pinyin[0]);
sb.write(separator);
});
return MultiPinyin(word: subStr, pinyin: sb.toString());
}
}
return null;
}