From 997bedb75ec58f265f441cea08b9a8f62f937fdf Mon Sep 17 00:00:00 2001 From: pan Date: Sat, 8 Oct 2022 18:23:12 +0800 Subject: [PATCH] =?UTF-8?q?=E5=B0=86=E5=8D=95=E4=B8=AA=E6=8B=BC=E9=9F=B3?= =?UTF-8?q?=E5=88=86=E9=9A=94=E6=88=90=E5=A3=B0=E6=AF=8D=E5=92=8C=E9=9F=B5?= =?UTF-8?q?=E6=AF=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- lib/src/pinyin_helper.dart | 47 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 47 insertions(+) diff --git a/lib/src/pinyin_helper.dart b/lib/src/pinyin_helper.dart index 249ff18..54ffdb3 100644 --- a/lib/src/pinyin_helper.dart +++ b/lib/src/pinyin_helper.dart @@ -298,6 +298,53 @@ class PinyinHelper { static void addMultiPinyinDict(List list) { multiPinyinMap.addAll(PinyinResource.getResource(list)); } + + /// 将单个拼音分隔成声母和韵母 + static List splitPinyin(String pinyin) { + List result = []; + String initial = ''; + String finalPinyin = ''; + for (int i = 0; i < pinyin.length; i++) { + String char = pinyin[i]; + if (char == 'a' || + char == "ǎ" || + char == "á" || + char == "à" || + char == "ā" || + char == "e" || + char == "ě" || + char == "é" || + char == "è" || + char == "ē" || + char == "i" || + char == "ǐ" || + char == "í" || + char == "ì" || + char == "ī" || + char == "o" || + char == "ǒ" || + char == "ó" || + char == "ò" || + char == "ō" || + char == "u" || + char == "ǔ" || + char == "ú" || + char == "ù" || + char == "ū" || + char == "ü" || + char == "ǘ" || + char == "ǚ" || + char == "ǜ" || + char == "ǖ") { + initial = pinyin.substring(0, i); + finalPinyin = pinyin.substring(i); + break; + } + } + result.add(initial); + result.add(finalPinyin); + return result; + } } /// 多音字