<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: 博客園 模板提供:滬江博客
    主站蜘蛛池模板: 永久免费精品影视网站| 久久精品国产精品亚洲艾草网美妙| 亚洲天堂电影在线观看| 国内成人精品亚洲日本语音 | 四虎在线视频免费观看视频| 国产成人啪精品视频免费网| 亚洲福利秒拍一区二区| 精品亚洲永久免费精品| 亚洲国产成人久久一区WWW| 亚洲av永久无码精品网址| 69式互添免费视频| 久久久久国产亚洲AV麻豆| 亚洲人成77777在线观看网| 5555在线播放免费播放| 无码乱人伦一区二区亚洲一| 国产亚洲精彩视频| 毛片免费视频播放| 亚洲最大av资源站无码av网址| 国产成人亚洲午夜电影| 日本一区二区三区免费高清| 亚洲激情视频网站| 四虎最新永久免费视频| 亚洲大香人伊一本线| 999国内精品永久免费视频| 亚洲乱码在线视频| 国产va精品免费观看| 亚洲精品自偷自拍无码| 永久免费av无码网站大全| 亚洲AV噜噜一区二区三区| 亚洲国产成人久久一区久久| 日韩免费人妻AV无码专区蜜桃| 亚洲伊人久久综合影院| 无码av免费一区二区三区试看| 亚洲成a人片在线观看日本麻豆| 亚洲国产精品久久久久秋霞影院| 国产久爱免费精品视频| 亚洲第一页在线视频| 免费成人av电影| 在线观看www日本免费网站| 免费福利资源站在线视频| 亚洲成色在线影院|