利用微軟的microsoft.pinyinconverter能夠查詢出單個漢字的讀音,
然後利用這個類通過排列組合就能得出詞語中有多音情況下的集合。
///
/// 得到首字母
///
/// 中文文字
/// 中文文字的拼音首字母
public
static
string
getinitials
(string text)
=>
string
.isnullorempty
(text)
?null
:new
list
<
chinesechar
>
(text.
where
(ch =
> regex.
ismatch
(ch.
tostring()
,@"[\u4e00-\u9fbb]"))
.select
(ch =
>
newchinesechar
(ch)))
.select
(cc =
> cc.pinyins.
where
(pinyin =
>
!string
.isnullorempty
(pinyin)).
select
(pinyin =
> pinyin[0]
).distinct()
).aggregate
((ienumerablechar
>
>
)new
ienumerable
<
char
>
,(accumulator, sequence)
=>
from accseq in accumulator
from item in sequence
select accseq.
concat
(new
),(result)
=> result.
select
(r =
>
newstring
(r.toarray()
))).
toarray()
;///
/// 得到拼音
///
/// 中文文字
/// 中文文字的拼音
public
static
string
getpinyin
(string text)
=>
string
.isnullorempty
(text)
?null
:new
list
<
chinesechar
>
(text.
where
(ch =
> regex.
ismatch
(ch.
tostring()
,@"[\u4e00-\u9fbb]"))
.select
(ch =
>
newchinesechar
(ch)))
.select
(cc =
> cc.pinyins.
where
(pinyin =
>
!string
.isnullorempty
(pinyin)).
select
(pinyin =
> pinyin.
substring(0
, pinyin.length -1)
).distinct()
).aggregate
((ienumerablestring
>
>
)new
ienumerable
<
string
>
,(accumulator, sequence)
=>
from accseq in accumulator
from item in sequence
select accseq.
concat
(new
),(result)
=> result.
select
(r =
>
string
.join
(" "
, r.
select
(s =
>
string
.concat
(s[0
], s.
substring(1
).tolower()
))))
).toarray()
;
PHP 中文轉換成拼音
encode方法中傳進兩個引數,utf8data,sretformat,第乙個引數為傳入的中文,字元編碼為utf 8,如果不是這個編碼要轉換成utf 8,第二個引數head 首字母 all 全拼音,返回值為轉換後的拼音 class utf8topinyin if ichr 160 ichr ichr...
C 漢字轉拼音 將中文轉換成拼音
建立乙個公共類,用於轉換漢字 public class chntoph 定義拼音陣列 private static string getname new string 建立乙個convertch方法用於將漢字轉換成全拼的拼音,其中,引數代表漢字字串,此方法的返回值是轉換後的拼音字串 public s...
漢字轉換成拼音
c 乙個有用的漢字轉拼音類 c 漢字轉換為拼音的類,含大小寫轉換 因為是靜態函式 呼叫方法很簡單 crazycoderpinyin.convert 瘋狂 如下 using system using system.collections.generic using system.text using ...