- 前言
剛進入上一家公司時,編寫過一個學漢語項目,這個項目對我的鍛鍊還是也挺大的,畢竟一個剛畢業的大學生,從來沒有接手過公司項目,而所從事的公司是一家偏硬件的語音公司,手機端編程的人員在我之前幾個月就來了一個大神,他把我招聘進來了,然後不到一個月他也離職了,最後也就我孤軍奮戰了,一個項目從需求分析,代碼設計全由我一人包攬,雖然這個項目由於種種原因流產了,但對我來說鍛鍊夠了也算滿足,最近兩個月纔開始寫博客,現在代碼都講究開源了,我的成果也沒什好保留的了,也不算多大的成績。
好啦,廢話不多說,我要提供給大家的是一個數字拼音與帶音標拼音轉換的工具類。
- 需求誕生:
學漢語軟件需要攬括小學一年級到九年級的所有課本字詞的拼音內容,這是一個巨大的工作量,而數據庫的錄入工作顯得尤爲重要,效率也是必須考慮進來的因素,帶音標的拼音錄入進來是很麻煩的,如”nüě”這個詞,打出來就很痛哭,數量不多還好,量大了效率就會很低了,而且我們的語音合成軟件只認識”nve3”這種類型的拼音,3是音調,但如果能用帶數字的拼音來代替就簡單多了,如用”nve3”代替”nüě”,當然其中”v”=”ü”,也是其中需要轉換的細節,鍵盤上可見的二十六個字母加上(1、2、3、4)四個數字鍵就能完美解決我們的問題,”nve”代表沒有音調,這樣數據錄入人員的工作量是不是就簡單多了。
- 最終目標
- “nve3”—>”nüě”;
- “nüě”—>”nve3”;
數據庫錄入”nve3”,手機短顯示成”nüě”,
實現:
考慮到數據轉換的量可能會很大,以及可能會做IOS版本,所有我做了一個C項目來實現這個功能,並做出了so庫,IOS的library庫還沒有去實現,有需要可以聯繫我。Java端的代碼如下:
主要方法如下:
/**
* 帶音符拼音串轉帶數字的拼音串
*/
public static String Symbol2Num(String bereplaced);
示例:GetPinyin.Symbol2Num("nüě");
/**
* 帶數字拼音串轉帶音符的拼音串
*/
public static String Num2Symbol(String bereplaced)
示例:GetPinyin.Num2Symbol("nve3");