這幾天在做項目的時候用到了通過拼音去數(shù)據(jù)庫表里面去模糊查詢漢語字段,剛開始的時候感覺特別神奇,查了好多資料,直接去模糊查詢是能實現(xiàn)的,但是貌似很復雜。所以最終取了一個比較容易的方案,就是給數(shù)據(jù)庫表里面新加了一個拼音字段。完美的解決了這個問題,雖說可以這么干,但是數(shù)據(jù)這么多,全部轉換為拼音(人一個一個區(qū)輸入,有點不現(xiàn)實)。于是就在網(wǎng)上找呀找,就找到了一段直接將漢語轉換為拼音的一段代碼,在這和大家分享一下。
所需jar:pinyin4j-2.5.0.jar
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
|
public static void main(String[] args) { System.out.println(getPingYin( "小龍驛站" )); } public static String getPingYin(String str) { char [] t1 = null ; t1 = str.toCharArray(); String[] t2 = new String[t1.length]; HanyuPinyinOutputFormat t3 = new HanyuPinyinOutputFormat(); t3.setCaseType(HanyuPinyinCaseType.LOWERCASE); t3.setToneType(HanyuPinyinToneType.WITHOUT_TONE); t3.setVCharType(HanyuPinyinVCharType.WITH_V); String t4 = "" ; int t0 = t1.length; try { for ( int i = 0 ; i < t0; i++) { // 判斷能否為漢字? if (Character.toString(t1[i]).matches( "[\\u4E00-\\u9FA5]+" )) { t2 = PinyinHelper.toHanyuPinyinStringArray(t1[i], t3); // 將漢字的幾種全拼都存到t2數(shù)組? t4 += t2[ 0 ]; // 取出該漢字全拼的第一種讀音并連接到字符串t4? } else { // 如果不是漢字字符,間接取出字符并連接到字符串t4? t4 += Character.toString(t1[i]); } } } catch (BadHanyuPinyinOutputFormatCombination e) { e.printStackTrace(); } return t4; |
以上所述是小編給大家介紹的java實現(xiàn)將漢語轉換為拼音功能,希望對大家有所幫助!
原文鏈接:http://blog.csdn.net/u012081441/article/details/71792206