1. 程式人生 > >java程式將漢字轉成拼音的兩種方法

java程式將漢字轉成拼音的兩種方法

1.使用pinyin4j將漢字轉成拼音,附件為pinyin4j的jar包 
Java程式碼  收藏程式碼
  1. import net.sourceforge.pinyin4j.PinyinHelper;  
  2. import net.sourceforge.pinyin4j.format.HanyuPinyinCaseType;  
  3. import net.sourceforge.pinyin4j.format.HanyuPinyinOutputFormat;  
  4. import net.sourceforge.pinyin4j.format.HanyuPinyinToneType;  
  5. import net.sourceforge.pinyin4j.format.HanyuPinyinVCharType;  
  6. import net.sourceforge.pinyin4j.format.exception.BadHanyuPinyinOutputFormatCombination;  
  7. public class ChineseToEnglish {  
  8.     // 將漢字轉換為全拼  
  9.     public static String getPingYin(String src) {  
  10.         char[] t1 = null;  
  11.         t1 = src.toCharArray();  
  12.         String[] t2 = new String[t1.length];  
  13.         HanyuPinyinOutputFormat t3 = new HanyuPinyinOutputFormat();  
  14.         t3.setCaseType(HanyuPinyinCaseType.LOWERCASE);  
  15.         t3.setToneType(HanyuPinyinToneType.WITHOUT_TONE);  
  16.         t3.setVCharType(HanyuPinyinVCharType.WITH_V);  
  17.         String t4 = ""
    ;  
  18.         int t0 = t1.length;  
  19.         try {  
  20.             for (int i = 0; i < t0; i++) {  
  21.                 // 判斷是否為漢字字元  
  22.                 if (java.lang.Character.toString(t1[i]).matches(  
  23.                         "[\\u4E00-\\u9FA5]+")) {  
  24.                     t2 = PinyinHelper.toHanyuPinyinStringArray(t1[i], t3);  
  25.                     t4 += t2[0];  
  26.                 } else  
  27.                     t4 += java.lang.Character.toString(t1[i]);  
  28.             }  
  29.             // System.out.println(t4);  
  30.             return t4;  
  31.         } catch (BadHanyuPinyinOutputFormatCombination e1) {  
  32.             e1.printStackTrace();  
  33.         }  
  34.         return t4;  
  35.     }  
  36.     // 返回中文的首字母  
  37.     public static String getPinYinHeadChar(String str) {  
  38.         String convert = "";  
  39.         for (int j = 0; j < str.length(); j++) {  
  40.             char word = str.charAt(j);  
  41.             String[] pinyinArray = PinyinHelper.toHanyuPinyinStringArray(word);  
  42.             if (pinyinArray != null) {  
  43.                 convert += pinyinArray[0].charAt(0);  
  44.             } else {  
  45.                 convert += word;  
  46.             }  
  47.         }  
  48.         return convert;  
  49.     }  
  50.     // 將字串轉移為ASCII碼  
  51.     public static String getCnASCII(String cnStr) {  
  52.         StringBuffer strBuf = new StringBuffer();  
  53.         byte[] bGBK = cnStr.getBytes();  
  54.         for (int i = 0; i < bGBK.length; i++) {  
  55.             strBuf.append(Integer.toHexString(bGBK[i] & 0xff));  
  56.         }  
  57.         return strBuf.toString();  
  58.     }  
  59.     public static void main(String[] args) {  
  60.         System.out.println(getPingYin("綦江qq縣"));  
  61.         System.out.println(getPinYinHeadChar("綦江縣"));  
  62.         System.out.println(getCnASCII("綦江縣"));  
  63.     }  
  64. }  


2.java程式直接轉 
Java程式碼  收藏程式碼
  1. import java.util.Iterator;  
  2. import java.util.LinkedHashMap;  
  3. import java.util.Set;  
  4. public class ChineseToEnglish2 {  
  5.     private static LinkedHashMap spellMap = null;  
  6.     static {  
  7.         if (spellMap == null) {  
  8.             spellMap = new LinkedHashMap(500);  
  9.         }  
  10.         initialize();  
  11.     }  
  12.     private ChineseToEnglish2() {  
  13.     }  
  14.     private static void spellPut(String spell, int ascii) {  
  15.         spellMap.put(spell, new Integer(ascii));  
  16.     }  
  17.     private static void initialize() {  
  18.         spellPut("a", -20319);  
  19.         spellPut("ai", -20317);  
  20.         spellPut("an", -20304);  
  21.         spellPut("ang", -20295);  
  22.         spellPut("ao", -20292);  
  23.         spellPut("ba", -20283);  
  24.         spellPut("bai", -20265);  
  25.         spellPut("ban", -20257);  
  26.         spellPut("bang", -20242);  
  27.         spellPut("bao", -20230);  
  28.         spellPut("bei", -20051);  
  29.         spellPut("ben", -20036);  
  30.         spellPut("beng", -20032);  
  31.         spellPut("bi", -20026);  
  32.         spellPut("bian", -20002);  
  33.         spellPut("biao", -19990);  
  34.         spellPut("bie", -19986);  
  35.         spellPut("bin", -19982);  
  36.         spellPut("bing", -19976);  
  37.         spellPut("bo", -19805);  
  38.         spellPut("bu", -19784);  
  39.         spellPut("ca", -19775);  
  40.         spellPut("cai", -19774);  
  41.         spellPut("can", -19763);  
  42.         spellPut("cang", -19756);  
  43.         spellPut("cao", -19751);  
  44.         spellPut("ce", -19746);  
  45.         spellPut("ceng", -19741);  
  46.         spellPut("cha", -19739);  
  47.         spellPut("chai", -19728);  
  48.         spellPut("chan", -19725);  
  49.         spellPut("chang", -19715);  
  50.         spellPut("chao", -19540);  
  51.         spellPut("che", -19531);  
  52.         spellPut("chen", -19525);  
  53.         spellPut("cheng", -19515);  
  54.         spellPut("chi", -19500);  
  55.         spellPut("chong", -19484);  
  56.         spellPut("chou", -19479);  
  57.         spellPut("chu", -19467);  
  58.         spellPut("chuai", -19289);  
  59.         spellPut("chuan", -19288);  
  60.         spellPut("chuang", -19281);  
  61.         spellPut("chui", -19275);  
  62.         spellPut("chun", -19270);  
  63.         spellPut("chuo", -19263);  
  64.         spellPut("ci", -19261);  
  65.         spellPut("cong", -19249);  
  66.         spellPut("cou", -19243);  
  67.         spellPut("cu", -19242);  
  68.         spellPut("cuan", -19238);  
  69.         spellPut("cui", -19235);  
  70.         spellPut("cun", -19227);  
  71.         spellPut("cuo", -19224);  
  72.         spellPut("da", -19218);  
  73.         spellPut("dai", -19212);  
  74.         spellPut("dan", -19038);  
  75.         spellPut("dang", -19023);  
  76.         spellPut("dao", -19018);  
  77.         spellPut("de", -19006);  
  78.         spellPut("deng", -19003);  
  79.         spellPut("di", -18996);  
  80.         spellPut("dian", -18977);  
  81.         spellPut("diao", -18961);  
  82.         spellPut("die", -18952);  
  83.         spellPut("ding", -18783);  
  84.         spellPut("diu", -18774);  
  85.         spellPut("dong", -18773);  
  86.         spellPut("dou", -18763);  
  87.         spellPut("du", -18756);  
  88.         spellPut("duan", -18741);  
  89.         spellPut("dui", -18735);  
  90.         spellPut("dun", -18731);  
  91.         spellPut("duo", -18722);  
  92.         spellPut("e", -18710);  
  93.         spellPut("en", -18697);  
  94.         spellPut("er", -18696);  
  95.         spellPut("fa", -18526);  
  96.         spellPut("fan", -18518);  
  97.         spellPut("fang", -18501);  
  98.         spellPut("fei", -

    相關推薦

    java程式漢字拼音方法-----------------第二方式

    同樣需要下載pom檔案,匯入相應的jar包!!!!!! import net.sourceforge.pinyin4j.PinyinHelper;   import net.sourceforge.pinyin4j.format.HanyuPi

    java程式漢字拼音方法

    1.使用pinyin4j將漢字轉成拼音,附件為pinyin4j的jar包  Java程式碼   import net.sourceforge.pinyin4j.PinyinHelper;   import net.sourceforge.piny

    漢字轉化拼音的使用方法

    1、步驟一:將pinyin4j-2.5.0.jar拷貝到libs下 2、步驟二: 封裝一個類,用來進行進行轉化拼音 class Hanyu { private HanyuPinyinOutputFormat format = null;

    pyhton3.5漢字二進制的方法

    font code 中國 進制 family bytes print 3.5 int 直接上代碼:name = "你好,中國人"byteName = bytes(name.encode("utf-8"))print(byteName)for b in byteName :

    Android 實現ListView的A-Z字母排序和過濾搜尋功能,實現漢字拼音

    分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow 也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!        

    漢字拼音

    NSString *stringText = @"iOS開發交流群:119783156"; if ([stringText length]) { NSMutab

    自定義UDF函式:漢字轉換拼音

    工作需求要講漢字轉換成拼音,自定義UDF函式import net.sourceforge.pinyin4j.PinyinHelper; import net.sourceforge.pinyin4j.f

    Android 實現漢字拼音,實現ListView的A-Z字母排序,顯現多音字城市排序

    今天給大家帶來ListView的A-Z字母排序和過濾搜尋功能並且實現漢字轉成拼音的功能,我們知道一般我們對聯絡人,城市列表等實現A-Z的排序,因為聯絡人和城市列表我們可以直接從資料庫中獲取他的漢字拼音,而對於一般的資料,我們怎麼實現A-Z的排序,我們需要將漢字

    淺談Java如何字串Json物件以及從Json物件中獲得相應的值

    前序:在做專案的過程中有次需要將json格式的字元拼接起來作為HTTP請求的一部分,且伺服器響應資訊即收到的返回資訊也是json格式的字串,在做這個專案中請求資訊我是使用字串拼接的,長長的json格式字串讓我拼接了半天,中途出現了幾次錯誤,白白耗費了時間。解析響應的json格

    C#漢字漢語拼音

    /// <summary> /// 漢字轉拼音或轉拼音首字母 /// </summary> public class ChineseToSpell {

    vue打包的時候自動pxrem的操作方法

    px2rem-loader 需要與 flexible 配合使用,不然px2rem僅僅只是轉成rem卻不會設定rem的資訊 安裝 flexible npm i lib-flexible -S 然後在main.js中引入 import ‘lib-flexible/flexible

    Java程式設計師需要了解的伺服器設計模型

    我們在IO模型和Java網路程式設計模型中,對IO有了一定的理解。這一篇,主要講解基於事件驅動的兩種是在原來基礎上的擴充套件。在基於事件驅動的網路程式設計模型中,Reactor和Proactor模型是兩種常用的IO設計模型。 我們知道BIO(阻塞IO)只有等待阻塞方法結束了,操作權才會交還給呼叫

    python中listcsv的方法

    方法一: name_attribute = ['NumberID','UserID','ModuleID','StartDate','EndDate','Frequent'] writerCSV=pd.DataFrame(columns=name_attribute,data=data) wr

    DES加密 java與.net可以相互加密解密方法

    DES加密 java與.net可以相互加密解密兩種方法 https://www.cnblogs.com/DrWang/archive/2011/03/30/2000124.html   sun.misc.BASE64Decoder.jar最新 https://download.csdn.ne

    Base64位元組陣列圖片的方法

    問題引出: 在某些情況下Rest API約定不允許通過流形式直接GET提供到客戶端直接展示圖片。如果是這樣,那麼就只能把後端生成的圖片轉成ByteArray返回給前臺,讓前臺重新把它變成圖片!這裡提供兩種解析方法 第一種方法: data中包含了一個PNG圖片驗證

    判斷java物件是否是垃圾物件的方法

    前言 判斷物件為垃圾物件的方法為:引用計數法和可達性分析法。 Object object = new Object(); object = null; // 此時為垃圾物件 引用計數法 在物件中新增一個引用計數器,當有地方引用這個物件的時候,

    微信小程式彈出loading層的方法:直接在程式碼裡控制,在wxml檔案里布局彈窗loading層,利用條件渲染,在js程式碼裡控制是否顯示loading層。

    微信小程式彈出loading層的兩種方法:直接在程式碼裡控制,在wxml檔案里布局彈窗loading層,利用條件渲染,在js程式碼裡控制是否顯示loading層。  直接在程式碼裡控制 js程式碼 showLoading:function(){ wx.showToast({

    Java併發:建立執行緒的方法:繼承Thread類和實現Runnable介面(一)

    【1】瞭解程序與執行緒的概念 程序是一個程式在其自身的地址空間中執行一次活動,是資源申請、排程和獨立執行的單位。 執行緒是程序中的一個單一的連續控制流程,一個程序可以包含一個或多個執行緒。 如果要在

    多個java檔案共用同一動態變數的方法

    前言: 以前小白的我總是困惑兩個java檔案如何共用一個動態變數,今天就做一個總結   方法一: package com.Business.controller; import org.springframework.beans.factory.annotatio

    集合陣列的方法

    不多說,直接上程式碼,程式碼很簡單,應該都能看的懂~ public static void main(String[] args) {         List list = new ArrayLis