インポートジャーパッケージ:
1 < 依存性> 2 < のgroupId > com.belerweb </ groupIdを> 3 < たartifactId > pinyin4j </ たartifactId > 4 < バージョン> 2.5.0 </ バージョン> 5 </ 依存>
コード:
1つの パッケージorg.jeecg.modules.system.util。 2 3 インポートnet.sourceforge.pinyin4j.PinyinHelper。 4 インポートnet.sourceforge.pinyin4j.format.HanyuPinyinOutputFormat。 5 インポートnet.sourceforge.pinyin4j.format.HanyuPinyinToneType。 6 7 インポートjava.util.regex.Matcher。 8 インポートjava.util.regex.Patternの。 9 10 / ** 11 *获取首字母工具 12 * 13 * @author 14 * @Date 15 * / 16 パブリック クラス{ChineseCharacterUtil 。17 18である / ** 。19 *文字が最初の文字または大文字のスペルを受ける 20 * 21れる * @param 漢字 22である * @param trueにisFullスペルかどうか:偽スペルが表す示す:イニシャル 23である * 24 * @return 綴りや文字が大文字チャネリング 25 * / 26がある 公共の 静的文字列getUppercase(中国語文字列、ブールisFull){ 27 リターン; convertHanzi2Pinyin(中国語、isFull).toUpperCase() 28 } 29 30 / ** 31 IS *文字が最初の文字または小文字スペルプレゼント 32 * 33である * @param 漢字 34である * @param isFull真のスペルかどうか:偽スペルを示す表す:イニシャル 35 * 36 * @return チャネリング最初の文字または小文字のスペル 37 * / 38である パブリック 静的 文字列getLowercase(中国語文字列、ブールisFull){ 39 リターンconvertHanzi2Pinyin(中国語、isFull).toLowerCase(); 40 } 41は、 42である / ** 43れる *表音漢字に変換し 44である * <P> 45 *頭字語またはスペル 46をされる * 47の * @param 漢字文字列 48 * @param isFull trueにスペルかどうか:偽のスペルが表す示し:イニシャル 49 * 50 * @return 歴史 51がある * / 52です プライベート 静的な文字列convertHanzi2Pinyin (文字列の漢字、ブールisFull){ 53がある / ** * 54がある * ^ [\ u2E80- \ u9FFF] + $は、東アジアのすべての言語に一致する 55 * ^ [\ u4E00- \ u9FFF] + $簡体字および繁体字マッチ 56 * ^簡素化された[\ u4E00- \ u9FA5] + $マッチ 57 * / 58 文字列の正規表現= "^ [\ u4E00- \ u9FFF] + $" ; 59 StringBufferのSB = 新規のStringBuffer(); 60 であれば(漢字== NULL || "" .equals(hanzi.trim())){ 61 リターン "" 。 62 } 63 文字ピンイン= "" ; 64 のために(INT iは= 0; I <hanzi.length(); iは++ ){ 65 チャーユニット= hanzi.charAt(I)。 66 // 是汉字、则转拼音 67 であれば(一致(String.valueOf(ユニット)、正規表現)){ 68 ピンイン=convertSingleHanzi2Pinyin(ユニット) 69 IF (isFull){ 70 sb.append(ピンイン); 71れる } 72 他{ 73である sb.append(pinyin.charAt(0 )); 74 } 75 } 他{ 76 sb.append(ユニット) ; 77 } 78 } 79 リターンsb.toString(); 80 } 81 82 / ** 83 *単一ピンイン文字に変換する 84 * 85 * @param 漢字汉字字符 86 * 87 * @return 拼音 88 * / 89 プライベート 静的文字列convertSingleHanzi2Pinyin(チャー漢字){ 90 HanyuPinyinOutputFormat OUTPUTFORMAT = 新しいHanyuPinyinOutputFormat()。 91 outputFormat.setToneType(HanyuPinyinToneType.WITHOUT_TONE)。 92 文字列[] RES。 93 StringBufferのSB = 新規のStringBuffer(); 94 試み{ 95の RES =PinyinHelper.toHanyuPinyinStringArray(漢字、OUTPUTFORMAT); 96 sb.append(RES [0]); // polyphoneため、最初のアルファベット 97 } キャッチ(例外E){ 98 e.printStackTrace(); 99 リターン」 " ; 100 } 101 リターンsb.toString(); 102 } 103 104 / ** * 105 *マッチ 106 * <P> 107 *文字マッチングと正規表現 108 * 109 * @param STRソース文字列 110 * @Param REGEX正規表現 111 * 112 * @return trueに:マッチが偽成功:マッチングが失敗した 113 * / 114 プライベート 静的 ブールマッチ(STR文字列、文字列REGEX){ 115 パターン=パターンPattern.compile(REGEX)の、 1 16 マッチャを=マッチャPattern.matcher(STR); 117 戻りmatcher.find(); 118 } 119 120 / ** 121 *試験方法 122 * / 123 パブリック 静的 ボイドメイン(文字列[]引数){ 124 のSystem.out.println(convertHanzi2Pinyin( "ファーガソン広東省Q"、falseに).toLowerCase()); 125 } 126 }