打开APP
未登录
开通VIP,畅享免费电子书等14项超值服
开通VIP
首页
好书
留言交流
下载APP
联系客服
java获取中文拼音
posondlq
>《ohter》
2012.09.12
关注
/**使用方法
String str = null;
try {
str = new String("猪八戒".getBytes(), "GBK");
}
catch (UnsupportedEncodingException ex) {
}
System.out.println("Spell=" + CnToSpell.getFullSpell(str));
*/
import
java.util.Iterator;
import
java.util.LinkedHashMap;
import
java.util.Set;
import
java.io.*;
/**
*
* @author new soul
*/
/**
*
汉字转化为全拼
*
JDK版本:
1.4
* @version 1.0
* @see
* @since 1.0
*/
@SuppressWarnings
(
"unchecked"
)
public
class
CnToSpell {
private
static
LinkedHashMap spellMap =
null
;
static
{
if
(spellMap ==
null
) {
spellMap =
new
LinkedHashMap(
400
);
}
initialize();
// System.out.println("Chinese transfer Spell Done.");
}
private
CnToSpell() {
}
private
static
void
spellPut(String spell,
int
ascii) {
spellMap.put(spell,
new
Integer(ascii));
}
private
static
void
initialize() {
spellPut(
"a"
, -
20319
);
spellPut(
"ai"
, -
20317
);
spellPut(
"an"
, -
20304
);
spellPut(
"ang"
, -
20295
);
spellPut(
"ao"
, -
20292
);
spellPut(
"ba"
, -
20283
);
spellPut(
"bai"
, -
20265
);
spellPut(
"ban"
, -
20257
);
spellPut(
"bang"
, -
20242
);
spellPut(
"bao"
, -
20230
);
spellPut(
"bei"
, -
20051
);
spellPut(
"ben"
, -
20036
);
spellPut(
"beng"
, -
20032
);
spellPut(
"bi"
, -
20026
);
spellPut(
"bian"
, -
20002
);
spellPut(
"biao"
, -
19990
);
spellPut(
"bie"
, -
19986
);
spellPut(
"bin"
, -
19982
);
spellPut(
"bing"
, -
19976
);
spellPut(
"bo"
, -
19805
);
spellPut(
"bu"
, -
19784
);
spellPut(
"ca"
, -
19775
);
spellPut(
"cai"
, -
19774
);
spellPut(
"can"
, -
19763
);
spellPut(
"cang"
, -
19756
);
spellPut(
"cao"
, -
19751
);
spellPut(
"ce"
, -
19746
);
spellPut(
"ceng"
, -
19741
);
spellPut(
"cha"
, -
19739
);
spellPut(
"chai"
, -
19728
);
spellPut(
"chan"
, -
19725
);
spellPut(
"chang"
, -
19715
);
spellPut(
"chao"
, -
19540
);
spellPut(
"che"
, -
19531
);
spellPut(
"chen"
, -
19525
);
spellPut(
"cheng"
, -
19515
);
spellPut(
"chi"
, -
19500
);
spellPut(
"chong"
, -
19484
);
spellPut(
"chou"
, -
19479
);
spellPut(
"chu"
, -
19467
);
spellPut(
"chuai"
, -
19289
);
spellPut(
"chuan"
, -
19288
);
spellPut(
"chuang"
, -
19281
);
spellPut(
"chui"
, -
19275
);
spellPut(
"chun"
, -
19270
);
spellPut(
"chuo"
, -
19263
);
spellPut(
"ci"
, -
19261
);
spellPut(
"cong"
, -
19249
);
spellPut(
"cou"
, -
19243
);
spellPut(
"cu"
, -
19242
);
spellPut(
"cuan"
, -
19238
);
spellPut(
"cui"
, -
19235
);
spellPut(
"cun"
, -
19227
);
spellPut(
"cuo"
, -
19224
);
spellPut(
"da"
, -
19218
);
spellPut(
"dai"
, -
19212
);
spellPut(
"dan"
, -
19038
);
spellPut(
"dang"
, -
19023
);
spellPut(
"dao"
, -
19018
);
spellPut(
"de"
, -
19006
);
spellPut(
"deng"
, -
19003
);
spellPut(
"di"
, -
18996
);
spellPut(
"dian"
, -
18977
);
spellPut(
"diao"
, -
18961
);
spellPut(
"die"
, -
18952
);
spellPut(
"ding"
, -
18783
);
spellPut(
"diu"
, -
18774
);
spellPut(
"dong"
, -
18773
);
spellPut(
"dou"
, -
18763
);
spellPut(
"du"
, -
18756
);
spellPut(
"duan"
, -
18741
);
spellPut(
"dui"
, -
18735
);
spellPut(
"dun"
, -
18731
);
spellPut(
"duo"
, -
18722
);
spellPut(
"e"
, -
18710
);
spellPut(
"en"
, -
18697
);
spellPut(
"er"
, -
18696
);
spellPut(
"fa"
, -
18526
);
spellPut(
"fan"
, -
18518
);
spellPut(
"fang"
, -
18501
);
spellPut(
"fei"
, -
18490
);
spellPut(
"fen"
, -
18478
);
spellPut(
"feng"
, -
18463
);
spellPut(
"fo"
, -
18448
);
spellPut(
"fou"
, -
18447
);
spellPut(
"fu"
, -
18446
);
spellPut(
"ga"
, -
18239
);
spellPut(
"gai"
, -
18237
);
spellPut(
"gan"
, -
18231
);
spellPut(
"gang"
, -
18220
);
spellPut(
"gao"
, -
18211
);
spellPut(
"ge"
, -
18201
);
spellPut(
"gei"
, -
18184
);
spellPut(
"gen"
, -
18183
);
spellPut(
"geng"
, -
18181
);
spellPut(
"gong"
, -
18012
);
spellPut(
"gou"
, -
17997
);
spellPut(
"gu"
, -
17988
);
spellPut(
"gua"
, -
17970
);
spellPut(
"guai"
, -
17964
);
spellPut(
"guan"
, -
17961
);
spellPut(
"guang"
, -
17950
);
spellPut(
"gui"
, -
17947
);
spellPut(
"gun"
, -
17931
);
spellPut(
"guo"
, -
17928
);
spellPut(
"ha"
, -
17922
);
spellPut(
"hai"
, -
17759
);
spellPut(
"han"
, -
17752
);
spellPut(
"hang"
, -
17733
);
spellPut(
"hao"
, -
17730
);
spellPut(
"he"
, -
17721
);
spellPut(
"hei"
, -
17703
);
spellPut(
"hen"
, -
17701
);
spellPut(
"heng"
, -
17697
);
spellPut(
"hong"
, -
17692
);
spellPut(
"hou"
, -
17683
);
spellPut(
"hu"
, -
17676
);
spellPut(
"hua"
, -
17496
);
spellPut(
"huai"
, -
17487
);
spellPut(
"huan"
, -
17482
);
spellPut(
"huang"
, -
17468
);
spellPut(
"hui"
, -
17454
);
spellPut(
"hun"
, -
17433
);
spellPut(
"huo"
, -
17427
);
spellPut(
"ji"
, -
17417
);
spellPut(
"jia"
, -
17202
);
spellPut(
"jian"
, -
17185
);
spellPut(
"jiang"
, -
16983
);
spellPut(
"jiao"
, -
16970
);
spellPut(
"jie"
, -
16942
);
spellPut(
"jin"
, -
16915
);
spellPut(
"jing"
, -
16733
);
spellPut(
"jiong"
, -
16708
);
spellPut(
"jiu"
, -
16706
);
spellPut(
"ju"
, -
16689
);
spellPut(
"juan"
, -
16664
);
spellPut(
"jue"
, -
16657
);
spellPut(
"jun"
, -
16647
);
spellPut(
"ka"
, -
16474
);
spellPut(
"kai"
, -
16470
);
spellPut(
"kan"
, -
16465
);
spellPut(
"kang"
, -
16459
);
spellPut(
"kao"
, -
16452
);
spellPut(
"ke"
, -
16448
);
spellPut(
"ken"
, -
16433
);
spellPut(
"keng"
, -
16429
);
spellPut(
"kong"
, -
16427
);
spellPut(
"kou"
, -
16423
);
spellPut(
"ku"
, -
16419
);
spellPut(
"kua"
, -
16412
);
spellPut(
"kuai"
, -
16407
);
spellPut(
"kuan"
, -
16403
);
spellPut(
"kuang"
, -
16401
);
spellPut(
"kui"
, -
16393
);
spellPut(
"kun"
, -
16220
);
spellPut(
"kuo"
, -
16216
);
spellPut(
"la"
, -
16212
);
spellPut(
"lai"
, -
16205
);
spellPut(
"lan"
, -
16202
);
spellPut(
"lang"
, -
16187
);
spellPut(
"lao"
, -
16180
);
spellPut(
"le"
, -
16171
);
spellPut(
"lei"
, -
16169
);
spellPut(
"leng"
, -
16158
);
spellPut(
"li"
, -
16155
);
spellPut(
"lia"
, -
15959
);
spellPut(
"lian"
, -
15958
);
spellPut(
"liang"
, -
15944
);
spellPut(
"liao"
, -
15933
);
spellPut(
"lie"
, -
15920
);
spellPut(
"lin"
, -
15915
);
spellPut(
"ling"
, -
15903
);
spellPut(
"liu"
, -
15889
);
spellPut(
"long"
, -
15878
);
spellPut(
"lou"
, -
15707
);
spellPut(
"lu"
, -
15701
);
spellPut(
"lv"
, -
15681
);
spellPut(
"luan"
, -
15667
);
spellPut(
"lue"
, -
15661
);
spellPut(
"lun"
, -
15659
);
spellPut(
"luo"
, -
15652
);
spellPut(
"ma"
, -
15640
);
spellPut(
"mai"
, -
15631
);
spellPut(
"man"
, -
15625
);
spellPut(
"mang"
, -
15454
);
spellPut(
"mao"
, -
15448
);
spellPut(
"me"
, -
15436
);
spellPut(
"mei"
, -
15435
);
spellPut(
"men"
, -
15419
);
spellPut(
"meng"
, -
15416
);
spellPut(
"mi"
, -
15408
);
spellPut(
"mian"
, -
15394
);
spellPut(
"miao"
, -
15385
);
spellPut(
"mie"
, -
15377
);
spellPut(
"min"
, -
15375
);
spellPut(
"ming"
, -
15369
);
spellPut(
"miu"
, -
15363
);
spellPut(
"mo"
, -
15362
);
spellPut(
"mou"
, -
15183
);
spellPut(
"mu"
, -
15180
);
spellPut(
"na"
, -
15165
);
spellPut(
"nai"
, -
15158
);
spellPut(
"nan"
, -
15153
);
spellPut(
"nang"
, -
15150
);
spellPut(
"nao"
, -
15149
);
spellPut(
"ne"
, -
15144
);
spellPut(
"nei"
, -
15143
);
spellPut(
"nen"
, -
15141
);
spellPut(
"neng"
, -
15140
);
spellPut(
"ni"
, -
15139
);
spellPut(
"nian"
, -
15128
);
spellPut(
"niang"
, -
15121
);
spellPut(
"niao"
, -
15119
);
spellPut(
"nie"
, -
15117
);
spellPut(
"nin"
, -
15110
);
spellPut(
"ning"
, -
15109
);
spellPut(
"niu"
, -
14941
);
spellPut(
"nong"
, -
14937
);
spellPut(
"nu"
, -
14933
);
spellPut(
"nv"
, -
14930
);
spellPut(
"nuan"
, -
14929
);
spellPut(
"nue"
, -
14928
);
spellPut(
"nuo"
, -
14926
);
spellPut(
"o"
, -
14922
);
spellPut(
"ou"
, -
14921
);
spellPut(
"pa"
, -
14914
);
spellPut(
"pai"
, -
14908
);
spellPut(
"pan"
, -
14902
);
spellPut(
"pang"
, -
14894
);
spellPut(
"pao"
, -
14889
);
spellPut(
"pei"
, -
14882
);
spellPut(
"pen"
, -
14873
);
spellPut(
"peng"
, -
14871
);
spellPut(
"pi"
, -
14857
);
spellPut(
"pian"
, -
14678
);
spellPut(
"piao"
, -
14674
);
spellPut(
"pie"
, -
14670
);
spellPut(
"pin"
, -
14668
);
spellPut(
"ping"
, -
14663
);
spellPut(
"po"
, -
14654
);
spellPut(
"pu"
, -
14645
);
spellPut(
"qi"
, -
14630
);
spellPut(
"qia"
, -
14594
);
spellPut(
"qian"
, -
14429
);
spellPut(
"qiang"
, -
14407
);
spellPut(
"qiao"
, -
14399
);
spellPut(
"qie"
, -
14384
);
spellPut(
"qin"
, -
14379
);
spellPut(
"qing"
, -
14368
);
spellPut(
"qiong"
, -
14355
);
spellPut(
"qiu"
, -
14353
);
spellPut(
"qu"
, -
14345
);
spellPut(
"quan"
, -
14170
);
spellPut(
"que"
, -
14159
);
spellPut(
"qun"
, -
14151
);
spellPut(
"ran"
, -
14149
);
spellPut(
"rang"
, -
14145
);
spellPut(
"rao"
, -
14140
);
spellPut(
"re"
, -
14137
);
spellPut(
"ren"
, -
14135
);
spellPut(
"reng"
, -
14125
);
spellPut(
"ri"
, -
14123
);
spellPut(
"rong"
, -
14122
);
spellPut(
"rou"
, -
14112
);
spellPut(
"ru"
, -
14109
);
spellPut(
"ruan"
, -
14099
);
spellPut(
"rui"
, -
14097
);
spellPut(
"run"
, -
14094
);
spellPut(
"ruo"
, -
14092
);
spellPut(
"sa"
, -
14090
);
spellPut(
"sai"
, -
14087
);
spellPut(
"san"
, -
14083
);
spellPut(
"sang"
, -
13917
);
spellPut(
"sao"
, -
13914
);
spellPut(
"se"
, -
13910
);
spellPut(
"sen"
, -
13907
);
spellPut(
"seng"
, -
13906
);
spellPut(
"sha"
, -
13905
);
spellPut(
"shai"
, -
13896
);
spellPut(
"shan"
, -
13894
);
spellPut(
"shang"
, -
13878
);
spellPut(
"shao"
, -
13870
);
spellPut(
"she"
, -
13859
);
spellPut(
"shen"
, -
13847
);
spellPut(
"sheng"
, -
13831
);
spellPut(
"shi"
, -
13658
);
spellPut(
"shou"
, -
13611
);
spellPut(
"shu"
, -
13601
);
spellPut(
"shua"
, -
13406
);
spellPut(
"shuai"
, -
13404
);
spellPut(
"shuan"
, -
13400
);
spellPut(
"shuang"
, -
13398
);
spellPut(
"shui"
, -
13395
);
spellPut(
"shun"
, -
13391
);
spellPut(
"shuo"
, -
13387
);
spellPut(
"si"
, -
13383
);
spellPut(
"song"
, -
13367
);
spellPut(
"sou"
, -
13359
);
spellPut(
"su"
, -
13356
);
spellPut(
"suan"
, -
13343
);
spellPut(
"sui"
, -
13340
);
spellPut(
"sun"
, -
13329
);
spellPut(
"suo"
, -
13326
);
spellPut(
"ta"
, -
13318
);
spellPut(
"tai"
, -
13147
);
spellPut(
"tan"
, -
13138
);
spellPut(
"tang"
, -
13120
);
spellPut(
"tao"
, -
13107
);
spellPut(
"te"
, -
13096
);
spellPut(
"teng"
, -
13095
);
spellPut(
"ti"
, -
13091
);
spellPut(
"tian"
, -
13076
);
spellPut(
"tiao"
, -
13068
);
spellPut(
"tie"
, -
13063
);
spellPut(
"ting"
, -
13060
);
spellPut(
"tong"
, -
12888
);
spellPut(
"tou"
, -
12875
);
spellPut(
"tu"
, -
12871
);
spellPut(
"tuan"
, -
12860
);
spellPut(
"tui"
, -
12858
);
spellPut(
"tun"
, -
12852
);
spellPut(
"tuo"
, -
12849
);
spellPut(
"wa"
, -
12838
);
spellPut(
"wai"
, -
12831
);
spellPut(
"wan"
, -
12829
);
spellPut(
"wang"
, -
12812
);
spellPut(
"wei"
, -
12802
);
spellPut(
"wen"
, -
12607
);
spellPut(
"weng"
, -
12597
);
spellPut(
"wo"
, -
12594
);
spellPut(
"wu"
, -
12585
);
spellPut(
"xi"
, -
12556
);
spellPut(
"xia"
, -
12359
);
spellPut(
"xian"
, -
12346
);
spellPut(
"xiang"
, -
12320
);
spellPut(
"xiao"
, -
12300
);
spellPut(
"xie"
, -
12120
);
spellPut(
"xin"
, -
12099
);
spellPut(
"xing"
, -
12089
);
spellPut(
"xiong"
, -
12074
);
spellPut(
"xiu"
, -
12067
);
spellPut(
"xu"
, -
12058
);
spellPut(
"xuan"
, -
12039
);
spellPut(
"xue"
, -
11867
);
spellPut(
"xun"
, -
11861
);
spellPut(
"ya"
, -
11847
);
spellPut(
"yan"
, -
11831
);
spellPut(
"yang"
, -
11798
);
spellPut(
"yao"
, -
11781
);
spellPut(
"ye"
, -
11604
);
spellPut(
"yi"
, -
11589
);
spellPut(
"yin"
, -
11536
);
spellPut(
"ying"
, -
11358
);
spellPut(
"yo"
, -
11340
);
spellPut(
"yong"
, -
11339
);
spellPut(
"you"
, -
11324
);
spellPut(
"yu"
, -
11303
);
spellPut(
"yuan"
, -
11097
);
spellPut(
"yue"
, -
11077
);
spellPut(
"yun"
, -
11067
);
spellPut(
"za"
, -
11055
);
spellPut(
"zai"
, -
11052
);
spellPut(
"zan"
, -
11045
);
spellPut(
"zang"
, -
11041
);
spellPut(
"zao"
, -
11038
);
spellPut(
"ze"
, -
11024
);
spellPut(
"zei"
, -
11020
);
spellPut(
"zen"
, -
11019
);
spellPut(
"zeng"
, -
11018
);
spellPut(
"zha"
, -
11014
);
spellPut(
"zhai"
, -
10838
);
spellPut(
"zhan"
, -
10832
);
spellPut(
"zhang"
, -
10815
);
spellPut(
"zhao"
, -
10800
);
spellPut(
"zhe"
, -
10790
);
spellPut(
"zhen"
, -
10780
);
spellPut(
"zheng"
, -
10764
);
spellPut(
"zhi"
, -
10587
);
spellPut(
"zhong"
, -
10544
);
spellPut(
"zhou"
, -
10533
);
spellPut(
"zhu"
, -
10519
);
spellPut(
"zhua"
, -
10331
);
spellPut(
"zhuai"
, -
10329
);
spellPut(
"zhuan"
, -
10328
);
spellPut(
"zhuang"
, -
10322
);
spellPut(
"zhui"
, -
10315
);
spellPut(
"zhun"
, -
10309
);
spellPut(
"zhuo"
, -
10307
);
spellPut(
"zi"
, -
10296
);
spellPut(
"zong"
, -
10281
);
spellPut(
"zou"
, -
10274
);
spellPut(
"zu"
, -
10270
);
spellPut(
"zuan"
, -
10262
);
spellPut(
"zui"
, -
10260
);
spellPut(
"zun"
, -
10256
);
spellPut(
"zuo"
, -
10254
);
}
/**
* 获得单个汉字的Ascii.
* @param cn char
* 汉字字符
* @return int
* 错误返回 0,否则返回ascii
*/
public
static
int
getCnAscii(
char
cn) {
byte
[] bytes =
null
;
try
{
bytes = (String.valueOf(cn)).getBytes(
"GBK"
);
}
catch
(UnsupportedEncodingException ex) {
}
if
(bytes ==
null
|| bytes.length >
2
|| bytes.length <=
0
) {
//错误
return
0
;
}
if
(bytes.length ==
1
) {
//英文字符
return
bytes[
0
];
}
if
(bytes.length ==
2
) {
//中文字符
int
hightByte =
256
+ bytes[
0
];
int
lowByte =
256
+ bytes[
1
];
int
ascii = (
256
* hightByte + lowByte) -
256
*
256
;
//System.out.println("ASCII=" + ascii);
return
ascii;
}
return
0
;
//错误
}
/**
* 根据ASCII码到SpellMap中查找对应的拼音
* @param ascii int
* 字符对应的ASCII
* @return String
* 拼音,首先判断ASCII是否>0&<160,如果是返回对应的字符,
*
否则到SpellMap中查找,如果没有找到拼音,则返回null,如果找到则返回拼音.
*/
public
static
String getSpellByAscii(
int
ascii) {
if
(ascii >
0
&& ascii <
160
) {
//单字符
return
String.valueOf( (
char
) ascii);
}
if
(ascii < -
20319
|| ascii > -
10247
) {
//不知道的字符
return
null
;
}
Set keySet = spellMap.keySet();
Iterator it = keySet.iterator();
String spell0 =
null
;
String spell =
null
;
int
asciiRang0 = -
20319
;
int
asciiRang;
while
(it.hasNext()) {
spell = (String) it.next();
Object valObj = spellMap.get(spell);
if
(valObj
instanceof
Integer) {
asciiRang = ( (Integer) valObj).intValue();
if
(ascii >= asciiRang0 && ascii < asciiRang) {
//区间找到
return
(spell0 ==
null
) ? spell : spell0;
}
else
{
spell0 = spell;
asciiRang0 = asciiRang;
}
}
}
return
null
;
}
/**
* 判断是否是字母
* @param ascii int
* @return boolean
*/
private
static
boolean
isAlphabet(
int
ascii) {
if
(ascii >
0
&& ascii <
160
) {
return
true
;
}
else
{
return
false
;
}
}
/**
* 返回字符串的全拼,是汉字转化为全拼,其它字符不进行转换
* @param cnStr String
* 字符串
* @return String
* 转换成全拼后的字符串
*/
public
static
String getFullSpell(String cnStr) {
if
(
null
== cnStr ||
""
.equals(cnStr.trim())) {
return
cnStr;
}
boolean
isChinese =
false
;
char
[] chars = cnStr.toCharArray();
StringBuffer retuBuf =
new
StringBuffer();
StringBuffer resultBuf =
new
StringBuffer();
for
(
int
i =
0
, Len = chars.length; i < Len; i++) {
int
ascii = getCnAscii(chars[i]);
if
(ascii ==
0
) {
//取ascii时出错
retuBuf.append(chars[i]);
}
else
{
String spell = getSpellByAscii(ascii);
if
(spell ==
null
) {
retuBuf.append(chars[i]);
}
else
{
//System.out.println("spell:"+spell);
retuBuf.append(spell);
}
// end of if spell == null
if
(!isAlphabet(ascii)) {
isChinese =
true
;
retuBuf.append(
""
);
//这里可以添加文字间的间隔
}
}
// end of if ascii <= -20400
}
// end of for
if
(isChinese) {
// resultBuf.append(cnStr);
// resultBuf.append("");
resultBuf.append(retuBuf.toString());
}
else
{
resultBuf.append(retuBuf.toString());
}
return
resultBuf.toString();
}
public
static
String getFirstSpell(String cnStr) {
return
null
;
}
}
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请
点击举报
。
打开APP,阅读全文并永久保存
查看更多类似文章
猜你喜欢
类似文章
【热】
打开小程序,算一算2024你的财运
Java集合框架之小结
FlexPaper+OpenOffice实现web的在线文档预览功能
Java中的集合(面试题)
JAVA - fastjson 中 JSONObject 的顺序问题
map集合的比较
Map接口及其重要实现类的用法
更多类似文章 >>
生活服务
热点新闻
留言交流
回顶部
联系我们
分享
收藏
点击这里,查看已保存的文章
导长图
关注
一键复制
下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!
联系客服
微信登录中...
请勿关闭此页面
先别划走!
送你5元优惠券,购买VIP限时立减!
5
元
优惠券
优惠券还有
10:00
过期
马上使用
×