功能描述:
1.將字串轉換為全拼表示
2.將字串轉換為全拼表示,漢字拼音之間空格分隔
3.將字串轉換為全拼表示,漢字拼音之間的分隔符可以指定
4.將漢字字串轉換為全拼音的聲母表示.比如:"我的測試"返回的是"wdcs"
相比現有網上絕大部分方法做的效能改進:
1.使用stringbuilder連線要解析的字串中的各個拼音.
現在網上的方法都是使用+連線方法. 但一般如果連線操作的次數超過3次就不要使用+連線,而採用stringbuilder方法.
這個方法改進了盡一半的效能.對於越大的字串改善越明顯.
2.對一級字串(日常使用最普遍的漢字)採用分塊查詢.類似折中查詢.
現在網上的方法就是遍歷所有一級機內碼作比較.這樣,每乙個排在最後面的漢字都將遍歷所有機內碼.
這種方法改善不是很顯. 但相比之下還是要好一點.
需要改進的地方
1.效能. 我總相信我沒有使用到什麼有效的演算法去查詢.因為我對演算法實在太欠缺了.
2.方法. 我們的五筆輸入法可以設定聯想拼音,輸入乙個漢字,其拼音就自然顯示出來.
輸入法中肯定有什麼可以供我們使用的方法.在網上找了一下,看到廖廖一二篇主題是關於使用微軟的什麼imm32.dll裡的方法.
susing system;
using system.collections.generic;
using system.text;
using system.text.regularexpressions;
public static class chinese2pinyin
;///
/// 機內碼對應的拼音陣列
///
private static string pyname = new string
;#endregion
#region 二級漢字
///
/// 二級漢字陣列
///
private static string otherchinese = new string
;///
/// 二級漢字對應拼音陣列
///
private static string otherpinyin = new string
;#endregion
#region 變數定義
// gb2312-80 標準規範中第乙個漢字的機內碼.即"啊"的機內碼
private const int firstchcode = -20319;
// gb2312-80 標準規範中最後乙個漢字的機內碼.即"齇"的機內碼
private const int lastchcode = -2050;
// gb2312-80 標準規範中最後乙個一級漢字的機內碼.即"座"的機內碼
private const int lastofonelevelchcode = -10247;
// 配置中文字元
static regex regex = new regex("[/u4e00-/u9fa5]$");
///
/// 用作比較的漢字列.
///
/// 實現流程:
/// 1.這些漢字是按a~z拼音排序.且每個漢字都是以a~z為聲母發音的第乙個漢字.即首界限漢字
///
///
static string referencechinese = new string ;
///
/// referencechinese陣列中漢字發音的聲母
///
static string pinyinarray = new string ;
#endregion
#endregion
#region 把漢字轉換成拼音(全拼)無間隔符號
///
/// 把漢字轉換成拼音(全拼)
///
/// 漢字字串
/// 轉換後的拼音(全拼)字串
public static string convert(string hzstring)
;newarray[23] = s;
array.sort(newarray);
VFP中取得漢字的簡拼或全拼
parameters c,n 如果n 1 轉換為簡拼,n 2 轉換為全拼 oldgzq select 儲存當前工作區 store to cpy,zf for i 1 to len alltrim c if asc substr alltrim c i,1 128 zf substr alltrim ...
根據輸入漢字獲取其全拼及簡拼
獲得漢字的拼音 static public class pinyinhelper endregion 獲得漢字的拼音,如果輸入的是英文本元將原樣輸出,中文標點符號將被忽略 漢字字串 拼音 return sb.tostring 獲得漢字拼音的簡寫,即每乙個漢字的拼音的首字母組成的串,如果輸入的是英文本...
根據輸入漢字獲取其全拼及簡拼
在日常的程式設計中,我們可能會根據輸入的拼音或者漢字來獲取其對應包含該字元的的有效資訊,這時我們就會用到其對應的全拼或者簡拼。在資料量不是特別大時,還可以手動輸入,但是這樣會給使用者帶來不良的體驗,造成一定的繁瑣。所有在這些操作方面,我們都盡量使用程式來實現,下面就是乙個關於獲取文字的特殊類,如有更...