java汉字⾸字母_java汉字获取⾸字母
1 dules.system.util;2
3 importnet.sourceforge.pinyin4j.PinyinHelper;
4 importnet.sourceforge.pinyin4j.format.HanyuPinyinOutputFormat;
5 importnet.sourceforge.pinyin4j.format.HanyuPinyinToneType;6
7 Matcher;8 Pattern;9
10 /**
11 * 获取⾸字母⼯具12 *13 *@author
14 * @Date15 */
16 public classChineseCharacterUtil {17
18 /**
19 * 获取汉字⾸字母或全拼⼤写字母20 *21 *@paramchinese 汉字22 *@paramisFull 是否全拼 true:表⽰全拼 false表⽰:⾸字母23 *24 *@return全拼或者⾸字母⼤写字符窜25 */
26 public static String getUpperCase(String chinese,booleanisFull){27
returnconvertHanzi2Pinyin(chinese,isFull).toUpperCase();28 }29
30 /**
31 * 获取汉字⾸字母或全拼⼩写字母32 *33 *@paramchinese 汉字34 *@paramisFull 是否全拼 true:表⽰全拼 false表⽰:⾸字母35 *36 *@return全拼或者⾸字母⼩写字符窜37 */
38 public static String getLowerCase(String chinese,booleanisFull){39
returnconvertHanzi2Pinyin(chinese,isFull).toLowerCase();40 }41
42 /**
43 * 将汉字转成拼⾳44 *
45 * 取⾸字母或全拼46 *47 *@paramhanzi 汉字字符串48 *@paramisFull 是否全拼 true:表⽰全拼 fa
lse表⽰:⾸字母49 *50
*@return拼⾳51 */
52 private static String convertHanzi2Pinyin(String hanzi,booleanisFull){53 /***54 * ^[\u2E80-\u9FFF]+$ 匹配所有东亚区的语⾔55 * ^[\u4E00-\u9FFF]+$ 匹配简体和繁体56 * ^[\u4E00-\u9FA5]+$ 匹配简体57 */
58 String regExp="^[\u4E00-\u9FFF]+$";59 StringBuffer sb=newStringBuffer();60 if(hanzi==null||"".im())) {61 return "";62 }63 String pinyin="";64 for(int i=0;i
67 if(match(String.valueOf(unit),regExp)){68 pinyin=convertSingleHanzi2Pinyin(unit);69 if(isFull){70 sb.append(pinyin);71 }72 else{73 sb.append(pinyin.charAt(0));74 }75 }else{76 sb.append(unit);77 }78 }String();80 }81
82 /**
83 * 将单个汉字转成拼⾳84 *85 *@paramhanzi 汉字字符86 *87 *@return拼⾳88 */
正则表达式提取中文89 private static String convertSingleHanzi2Pinyin(charhanzi){90 HanyuPinyinOutputFormat outputF
ormat = newHanyuPinyinOutputFormat();91 outputFormat.setToneType(HanyuPinyinToneType.WITHOUT_TONE);92 String[] res;93 StringBuffer sb=newStringBuffer();94 try{95 res =HanyuPinyinStringArray(hanzi,outputFormat);96
sb.append(res[0]);//对于多⾳字,只⽤第⼀个拼⾳
97 } catch(Exception e) {98 e.printStackTrace();99 return "";100 }String();102 }103
104 /***105 * 匹配106 *
107 * 根据字符和正则表达式进⾏匹配108 *109 *@paramstr 源字符串110 *@paramregex 正则表达式111 *112 *@returntrue:匹配成功 false:匹配失败113 */
114 private static booleanmatch(String str,String regex){115 Pattern pattern=Patternpile(regex);116 Matcher matcher=pattern.matcher(str);117 returnmatcher.find();118 }119
120 /**
121 * 测试⽅法122 */
123 public static voidmain(String[] args) {124 System.out.println(convertHanzi2Pinyin("弗格森的⼴东省
q",false).toLowerCase());125 }126 }

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。