獲取漢字拼音首字母

2021-08-26 09:02:41 字數 3188 閱讀 9339

unit   py;

inte***ce

uses   sysutils;

//   獲取漢字的拼音首字元,這個函式將用在getpyindexstr   中.

function   getpyindexchar(strchinese:   string;   bupcase:   boolean   =   true):   char;

//   獲取多個漢字的拼音首字元組成的字串.

function   getpyindexstr(strchinese:   string;   bupcase:   boolean   =   true):   string;

implementation

//   函式:   getpyindexchar(strchinese:   string;bupcase:   boolean   =   true):   char;

// //   函式功能:獲取漢字的拼音首字元.

//   例:   getpyindexchar( '程 ')   將返回 'c '.

// //   注意:對於多於乙個漢字的輸入(string型別)只有第乙個有效,但不會產生錯誤

//   例如,getpyindexchar( '程式 ')也將返回 'c '.

// //   第二個引數決定返回大寫還是小寫   ,   預設為大寫   .

function   getpyindexchar(strchinese:   string;bupcase:   boolean   =   true):   char;

begin

//   根據漢字表中拼音首字元分別為「a」至「z」的漢字內碼範圍,

//   要檢索的漢字只需要檢查它的內碼位於哪乙個首字元的範圍內,

//   就可以判斷出它的拼音首字元。

case   word(strchinese[1])   shl   8   +   word(strchinese[2])   of

$b0a1..$b0c4   :   result   :=   'a ';

$b0c5..$b2c0   :   result   :=   'b ';

$b2c1..$b4ed   :   result   :=   'c ';

$b4ee..$b6e9   :   result   :=   'd ';

$b6ea..$b7a1   :   result   :=   'e ';

$b7a2..$b8c0   :   result   :=   'f ';

$b8c1..$b9fd   :   result   :=   'g ';

$b9fe..$bbf6   :   result   :=   'h ';

$bbf7..$bfa5   :   result   :=   'j ';

$bfa6..$c0ab   :   result   :=   'k ';

$c0ac..$c2e7   :   result   :=   'l ';

$c2e8..$c4c2   :   result   :=   'm ';

$c4c3..$c5b5   :   result   :=   'n ';

$c5b6..$c5bd   :   result   :=   'o ';

$c5be..$c6d9   :   result   :=   'p ';

$c6da..$c8ba   :   result   :=   'q ';

$c8bb..$c8f5   :   result   :=   'r ';

$c8f6..$cbf9   :   result   :=   's ';

$cbfa..$cdd9   :   result   :=   't ';

$cdda..$cef3   :   result   :=   'w ';

$cef4..$d188   :   result   :=   'x ';

$d1b9..$d4d0   :   result   :=   'y ';

$d4d1..$d7f9   :   result   :=   'z ';

else

result   :=   char(0);

end;

if   not   bupcase   then

begin   //   轉換為小寫

result   :=   chr(ord(result)+32);

end;

end;

//   函式:   getpyindexstr(strchinese:   string;bupcase:   boolean   =   true):   string;

// //   函式功能:獲取多個漢字的拼音首字元組成的字串.

//   例:   getpyindexstr( '程 ')   將返回 'c '.

//   getpyindexstr( '程式 ')將返回 'cx '.

// //   第二個引數決定返回大寫還是小寫   ,   預設為大寫   .

function   getpyindexstr(strchinese:   string;bupcase:   boolean   =   true):   string;

var

strchinesetemp   :   string;

ctemp   :   char;

begin

result   :=   ' ';

strchinesetemp   :=   strchinese;

while   strchinesetemp <> ' '   do

begin

ctemp   :=   getpyindexchar(strchinesetemp);

if   not   bupcase   then

begin   //   轉換為小寫

ctemp   :=   chr(ord(ctemp)+32);

end;

result   :=   result   +   string(ctemp);

strchinesetemp   :=   copy(strchinesetemp,3,length(strchinesetemp));

end;

end;

end.

獲取漢字拼音首字母

有個專案需要用到生成漢字的首字母,但從網上查了一下,對於多音字的處理都不是很好,所以就利用pinyin4j這個工具包自己寫了乙個。用到的jar包是pinyin4j 2.5.0.jar 獲取拼音首字母,多音字用逗號隔開 public static string getfirstspell string...

獲取漢字拼音首字母

獲取漢字拼音首字母 獲取漢字拼音首字母 很好用.覺的不錯的幫頂 1.下面的不上亂碼是位元組 第一步建立乙個函式 create or replace function f trans pinyin capital p name in varchar2 return varchar2 as v comp...

Silverlight 獲取漢字拼音首字母

2 在專案中新增對dbcs的引用 3 定義如下方法 得到乙個漢字的拼音第乙個字母,如果是乙個英文本母則直接返回大寫字母 單個漢字 單個大寫字母 public static string getcharspellcode string cnchar else icnchar match the con...