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...