<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    andy-j2ee  
    JAVA
    公告
    • 在夜深人靜的時候,偶彈起心愛的土琵琶,唱起那動人的歌謠(柯受良-《大哥》):偶寫了代碼好多年,偶不愛冰冷的床沿,不要逼偶想念,不要逼偶流淚,偶會翻。
    日歷
    <2011年5月>
    24252627282930
    1234567
    891011121314
    15161718192021
    22232425262728
    2930311234
    統計
    • 隨筆 - 19
    • 文章 - 1
    • 評論 - 1
    • 引用 - 0

    導航

    常用鏈接

    留言簿

    隨筆分類(5)

    隨筆檔案(19)

    文章分類(1)

    文章檔案(1)

    搜索

    •  

    最新評論

    閱讀排行榜

    評論排行榜

     
    今天開發了自己的第二個開源工具 jar包
    名稱:pinyin4j.jar
    功能: 將漢語拼音轉換為漢語拼音

    算法:
    從對應的資源文件中(文件中包含了常用漢字的unicode編碼-拼音)
    文件格式如下:
    3007 (ling2)
    4E00 (yi1)
    4E01 (ding1,zheng1)
    4E02 (kao3)
    4E03 (qi1)
    4E04 (shang4,shang3)
    .
    .
    .
    用數據流的方式讀取 然后將unicode碼以key,pinyin為value存入一個HashMap中

    接口:
        傳入:漢語拼音的字符串
        返回:拼音的字符串數組(即每個漢語拼音對應相應的拼音)


    源碼:
    package com.anduo.pinyin4j;
    
    import java.io.BufferedReader;
    import java.io.IOException;
    import java.io.InputStream;
    import java.io.InputStreamReader;
    import java.util.HashMap;
    
    public class PinYinHelper {
    	private static HashMap<String, String> hashMap = new HashMap<String, String>();
    
    	/**
    	 * 將unicode-to-hanyu-pinyin.txt文件 以unicode為key pinyin為value 加到hashmap中
    	 */
    	private static void myReader() {
    		InputStream is = PinYinHelper.class.getClass().getResourceAsStream(
    				"/resource/unicode_to_hanyu_pinyin.txt");
    		BufferedReader breader = new BufferedReader(new InputStreamReader(is));
    		String s;
    		String unicode;
    		String pinyin;
    		try {
    			while ((s = breader.readLine()) != null) {
    				// 提取文件流每行中的unicode碼以及 pinyin字符串
    				unicode = s.substring(0, 4);
    				pinyin = s.substring(6, s.length() - 1);
    				hashMap.put(unicode.toLowerCase(), pinyin);
    			}
    		} catch (IOException e) {
    			e.printStackTrace();
    		}
    	}
    
    	/**
    	 * 將漢語轉換為漢語拼音
    	 * 
    	 * @param value
    	 * @return pinyin[]
    	 */
    	public static String[] toHanYuPinYin(String value) {
    
    		myReader();
    
    		String[] result = new String[value.length()];
    		String unicode;
    		String pinyin;
    		for (int i = 0; i < value.length(); i++) {
    			Character c = value.charAt(i);
    			unicode = Integer.toHexString(c);// 得到漢字的unicode編碼
    			pinyin = hashMap.get(unicode);// 從hashMap中找到漢子的拼音
    			result[i] = pinyin;
    		}
    
    		return result;
    	}
    }
    
    


    然后導出為jar包

    測試一下:
    新建一個java工程,然后將剛做好的jar包導入的工程中
    新建一個test類
    package com.anduo;
    
    import com.anduo.pinyin4j.PinYinHelper;
    
    public class test {
    	public static void main(String[] args) {
    
    		String s[] = PinYinHelper.toHanYuPinYin("大但是關鍵的是概多少了攻擊多少");
    		for (String string : s) {
    			System.out.println(string);
    		}
    
    	}
    }
    
    


    測試效果:
    da4,dai4
    dan4
    shi4
    guan1
    jian4
    de5,di4,di2
    shi4
    gai4
    duo1
    shao3,shao4
    le5,liao3,liao4
    gong1
    ji1
    duo1
    shao3,shao4


    遇到的問題,在導出jar包的時候出了很多錯誤
    主要問題出在: 如何讀取jar包中的資源文件 這個可以參考我收藏的一篇文章




    已有 0 人發表留言,猛擊->>這里<<-參與討論


    ITeye推薦



    posted on 2011-05-14 19:53 安多 閱讀(266) 評論(0)  編輯  收藏

    只有注冊用戶登錄后才能發表評論。


    網站導航:
     
     
    Copyright © 安多 Powered by: 博客園 模板提供:滬江博客
    主站蜘蛛池模板: 青青青视频免费观看| 你懂的网址免费国产| 亚洲综合精品网站在线观看| 青青操在线免费观看| 亚洲国产精品xo在线观看| 亚洲?v无码国产在丝袜线观看| 成人免费在线观看网站| 成人a毛片视频免费看| 亚洲色图国产精品| 在线观看永久免费视频网站| 今天免费中文字幕视频| 亚洲精品第一国产综合亚AV| 亚洲av午夜福利精品一区人妖| 四虎成人精品一区二区免费网站| 三级黄色免费观看| 亚洲精品GV天堂无码男同| 亚洲AV日韩AV鸥美在线观看| 成年女人永久免费观看片| 一级做a爰全过程免费视频| 精品亚洲福利一区二区| 久久亚洲AV无码精品色午夜麻豆| 免费在线观看视频a| 免费阿v网站在线观看g| 国产一区二区三区免费| 国产亚洲精品美女| 亚洲人成人77777网站不卡| 亚洲国产精品一区二区成人片国内 | 特级毛片aaaa免费观看| 国精无码欧精品亚洲一区| 国产在线观看www鲁啊鲁免费| 最近最新高清免费中文字幕 | 亚洲国产精品ⅴa在线观看| 亚洲国产二区三区久久| 亚洲国产精品成人网址天堂| 啦啦啦中文在线观看电视剧免费版 | 免费看的黄色大片| 国产免费爽爽视频在线观看| www免费黄色网| 暖暖免费中文在线日本| 色偷偷尼玛图亚洲综合| 学生妹亚洲一区二区|