漢字拼音工具類

廢話不多說 直接貼代碼

maven 依賴 (要jar包自己去maven倉庫下載)

        <dependency>
            <groupId>com.belerweb</groupId>
            <artifactId>pinyin4j</artifactId>
        </dependency>

工具類

package com.jandar.common.util;

import net.sourceforge.pinyin4j.PinyinHelper;
import net.sourceforge.pinyin4j.format.HanyuPinyinCaseType;
import net.sourceforge.pinyin4j.format.HanyuPinyinOutputFormat;
import net.sourceforge.pinyin4j.format.HanyuPinyinToneType;
import net.sourceforge.pinyin4j.format.HanyuPinyinVCharType;
import net.sourceforge.pinyin4j.format.exception.BadHanyuPinyinOutputFormatCombination;

public class ChinesePinyinUtil {

    /**
     * 得到 漢字的全拼
     * @param src 中文字符串
     * @return
     */
    public static String getPingYin(String src) {
        HanyuPinyinOutputFormat format = new HanyuPinyinOutputFormat();
        format.setCaseType(HanyuPinyinCaseType.LOWERCASE);
        format.setToneType(HanyuPinyinToneType.WITHOUT_TONE);
        format.setVCharType(HanyuPinyinVCharType.WITH_V);
        StringBuilder sb = new StringBuilder();
        char[] srcArray = src.toCharArray();
        try {
            for (int i = 0; i < srcArray.length; i++) {
                // 判斷是否為漢字字符
                if (java.lang.Character.toString(srcArray[i]).matches("[\\u4E00-\\u9FA5]+")) {
                    String[] targetArray = PinyinHelper.toHanyuPinyinStringArray(srcArray[i], format);
                    sb.append(targetArray[0]);
                } else {
                    sb.append(java.lang.Character.toString(srcArray[i]));
                }
            }
            return sb.toString();
        } catch (BadHanyuPinyinOutputFormatCombination e1) {
            e1.printStackTrace();
        }
        return sb.toString();
    }
 
    /**
     * 得到中文首字母,例如"尵寤牵科"得到zk返回
     * @param str 中文字符串
     * @return
     */
    public static String getPinYinHeadChar(String str) {
        StringBuilder sb = new StringBuilder();
        for (int i = 0; i < str.length(); i++) {
            char word = str.charAt(i);
            String[] pinyinArray = PinyinHelper.toHanyuPinyinStringArray(word);
            if (pinyinArray != null) {
                sb.append(pinyinArray[0].charAt(0));
            } else {
                sb.append(word);
            }
        }
        return sb.toString();
    }
 
    /**
     * 將字符串轉移為ASCII碼
     * @param cnStr  中文字符串
     * @return
     */
    public static String getCnASCII(String cnStr) {
        StringBuilder sb = new StringBuilder();
        byte[] bGBK = cnStr.getBytes();
        for (int i = 0; i < bGBK.length; i++) {
            sb.append(Integer.toHexString(bGBK[i] & 0xff));
        }
        return sb.toString();
    }


    /**
     * 測試
     * @param args
     */
    public static void main(String[] args) {
        String cnStr = "重慶,重視昭君發(fā)展(尦苌拢科)環(huán)-境喵邈";
        System.out.println(getPingYin("test"));
        System.out.println(getPingYin(cnStr));
        System.out.println(getPinYinHeadChar(cnStr));
        System.out.println(getCnASCII("屩沂郏科"));
    }

}

?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末表伦,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子憎蛤,更是在濱河造成了極大的恐慌外傅,老刑警劉巖,帶你破解...
    沈念sama閱讀 218,525評論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件俩檬,死亡現(xiàn)場離奇詭異栏豺,居然都是意外死亡,警方通過查閱死者的電腦和手機豆胸,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,203評論 3 395
  • 文/潘曉璐 我一進店門奥洼,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人晚胡,你說我怎么就攤上這事灵奖〗姥兀” “怎么了?”我有些...
    開封第一講書人閱讀 164,862評論 0 354
  • 文/不壞的土叔 我叫張陵瓷患,是天一觀的道長骡尽。 經(jīng)常有香客問我,道長擅编,這世上最難降的妖魔是什么攀细? 我笑而不...
    開封第一講書人閱讀 58,728評論 1 294
  • 正文 為了忘掉前任,我火速辦了婚禮爱态,結果婚禮上谭贪,老公的妹妹穿的比我還像新娘。我一直安慰自己锦担,他們只是感情好俭识,可當我...
    茶點故事閱讀 67,743評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著洞渔,像睡著了一般套媚。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上磁椒,一...
    開封第一講書人閱讀 51,590評論 1 305
  • 那天堤瘤,我揣著相機與錄音,去河邊找鬼浆熔。 笑死本辐,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的蘸拔。 我是一名探鬼主播师郑,決...
    沈念sama閱讀 40,330評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼环葵,長吁一口氣:“原來是場噩夢啊……” “哼调窍!你這毒婦竟也來了?” 一聲冷哼從身側響起张遭,我...
    開封第一講書人閱讀 39,244評論 0 276
  • 序言:老撾萬榮一對情侶失蹤邓萨,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后菊卷,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體缔恳,經(jīng)...
    沈念sama閱讀 45,693評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,885評論 3 336
  • 正文 我和宋清朗相戀三年洁闰,在試婚紗的時候發(fā)現(xiàn)自己被綠了歉甚。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 40,001評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡扑眉,死狀恐怖纸泄,靈堂內(nèi)的尸體忽然破棺而出赖钞,到底是詐尸還是另有隱情,我是刑警寧澤聘裁,帶...
    沈念sama閱讀 35,723評論 5 346
  • 正文 年R本政府宣布雪营,位于F島的核電站,受9級特大地震影響衡便,放射性物質(zhì)發(fā)生泄漏献起。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,343評論 3 330
  • 文/蒙蒙 一镣陕、第九天 我趴在偏房一處隱蔽的房頂上張望谴餐。 院中可真熱鬧,春花似錦茁彭、人聲如沸总寒。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,919評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽摄闸。三九已至,卻和暖如春妹萨,著一層夾襖步出監(jiān)牢的瞬間年枕,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,042評論 1 270
  • 我被黑心中介騙來泰國打工乎完, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留熏兄,地道東北人。 一個月前我還...
    沈念sama閱讀 48,191評論 3 370
  • 正文 我出身青樓树姨,卻偏偏與公主長得像摩桶,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子帽揪,可洞房花燭夜當晚...
    茶點故事閱讀 44,955評論 2 355

推薦閱讀更多精彩內(nèi)容

  • 概述 作為Scala的標準構建工具硝清,使用風格與Maven類似,由Scala語言寫的转晰,參考官方網(wǎng)站芦拿,目前的版本是0....
    墨弈閱讀 13,247評論 0 52
  • 開篇介紹 大家好,我是Java最全面試題庫的提褲姐查邢,今天這篇是Java工具系列的第二篇蔗崎,主要總結了maven相關的...
    我可能是個假開發(fā)閱讀 374評論 0 2
  • 用兩張圖告訴你,為什么你的 App 會卡頓? - Android - 掘金 Cover 有什么料扰藕? 從這篇文章中你...
    hw1212閱讀 12,724評論 2 59
  • 這篇文章首發(fā)于公號《貓瑪尼》 大家好缓苛,我是“貓瑪尼”,一名程序員邓深。 給大家強烈推薦一個非常實用的Java工具類庫—...
    貓瑪尼閱讀 1,256評論 0 0
  • 推薦指數(shù): 6.0 書籍主旨關鍵詞:特權未桥、焦點番官、注意力、語言聯(lián)想钢属、情景聯(lián)想 觀點: 1.統(tǒng)計學現(xiàn)在叫數(shù)據(jù)分析徘熔,社會...
    Jenaral閱讀 5,721評論 0 5