漢字轉拼音 漢字首字母

2021-10-12 14:39:54 字數 4776 閱讀 3569

#region  漢字轉換成拼音

///

/// 漢字轉換成拼音

///

/// 中文字串

/// 每個漢字拼音間隔符號

/// 返回帶間隔符的拼音串

public

static

string

ntconverttopinyin

(string chrstr,

char compartsign)

i1 =

(short

)(array[0]

);i2 =

(short

)(array[1]

);chrasc = i1 *

256+ i2 -

65536;if

(chrasc >

0&& chrasc <

160)

else}}

//拼音間隔符

if(j != nowchar.length -1)

returnstr +

= compartsign;}}

catch

(exception ex)

return returnstr;

}#endregion

#region 漢字轉換成拼音

///

/// 漢字轉換成拼音

/// 如果是漢字和英文本母混雜的,則不做處理返回null,如果是純漢字則返回漢字的首字母字串。

///

/// 中文字串

/// 是否過濾英文本母和特殊字元

/// 漢字首字母字串

public

static

string

ntconverttopinyin

(string chrstr,

bool isfilterchar)

else

} i1 =

(short

)(array[0]

);i2 =

(short

)(array[1]

);chrasc = i1 *

256+ i2 -

65536;if

(chrasc >

0&& chrasc <

160)

else}}

//拼音間隔符

if(j != nowchar.length -1)

returnstr +

='~';}

string

temp = returnstr.

split

('~');

stringbuilder sb =

newstringbuilder()

;for

(int i =

0; i < temp.length; i++

) returnstr = sb.

tostring()

;}catch

(exception ex)

return returnstr;

}#endregion

#region 要判斷的字元

///

/// 要判斷的字元

/// 返回值是「1」表示大寫英文本母,「0」表示小寫英文本母,「2」表示數字,其它不是英文本母也不是數字的特殊符號返回「-1」

public

static

intntcheckcasenum

(char letter)

else

if(letterascii >=

97&& letterascii <=

122)

else

if(letterascii >=

48&& letterascii <=57)

else

return returnback;

}#endregion

#region 判斷串中首字是否是漢字

///

/// 判斷串中首字是否是漢字

///

///

///

public

static

bool

ntcheckischinese

(string charstr)

char

nowchar = charstr.

tochararray()

;int charascii = convert.

toint32

(nowchar[0]

);if(charascii >=

19968

&& charascii <=

40869

)else

return returnback;

}#endregion

#region 檢查字串中是否是漢字、數字、英文本母混雜

///

/// 檢查字串中是否是漢字、數字、英文本母混雜

///

/// 目標字串

/// bool

public

static

bool

ntcheckunify

(string str)

if(str.

trim()

.length ==1)

char

nowchar = str.

tochararray()

;for

(int i =

0; i < nowchar.length; i++

)else}}

return returnback;

}#endregion

#region 判斷輸入的字串是否符合是由數字和英文本母組成

///

/// 判斷輸入的字串是否符合是由數字和英文本母組成

///

/// 字串

/// 是否符合要求

public

static

bool

ntcheckcharnum

(string str)}}

}else

if(truecount == nowchar.length)

else

return returnback;

}#endregion

#region 檢查字串是否是純數字組成

///

/// 檢查字串是否是純數字組成

///

///

///

public

static

bool

ntcheckisnumber

(string str)

#endregion

#region 返回帶換行符號的字串

///

/// 返回帶換行符號的字串

///

/// 原始字串

/// 第一行的長度(以位元組計算)

/// 行的長度(以位元組計算)

///

public

static

string

ntgetrowstring

(string str,

int firstlen,

int rowlen)

else

if(tmplen == firstlen -

1|| tmplen == firstlen)if(

(tmplen - fstlen)

%(rowlen)==0

&& i - lstlen >2)

elseif(

(tmplen - fstlen)

%(rowlen)==1

&& i - lstlen >2)

}return sb.

tostring()

;}#endregion

public

static

string

ntconverttopinyin

(string chrstr)

i1 =

(short

)(array[0]

);i2 =

(short

)(array[1]

);chrasc = i1 *

256+ i2 -

65536;if

(chrasc >

0&& chrasc <

160)

else}}

//拼音間隔符

if(j != nowchar.length -1)

returnstr +

='~';}

string

temp = returnstr.

split

('~');

stringbuilder sb =

newstringbuilder()

;for

(int i =

0; i < temp.length; i++)}

returnstr = sb.

tostring()

;}catch

(exception ex)

return returnstr;

}private

static

int[

] pyvalue =

newint

;private

static

string

pystr =

newstring

;

漢字首字母

在很多軟體中,輸入拼音的首寫字母就可以快速定位到某個詞條。比如,在鐵路售票軟體中,輸入 bj 就可以定位到 北京 怎樣在自己的軟體中實現這個功能呢?問題的關鍵在於 對每個漢字必須能計算出它的拼音首字母。gb2312漢字編碼方式中,一級漢字的3755個是按照拼音順序排列的。我們可以利用這個特徵,對常用...

取漢字首字母

public function hz2py byval hz as string as string dim sarr as byte system.text.encoding.default.getbytes hz dim len as integer sarr.length if len 1 t...

提取漢字首字母

using system using system.collections.generic using system.text namespace stringoption return mystr 把提取的字母變成大寫 需要轉換的字串 轉換結果 public static string getlo...