ChineseUtils

这里获得汉字的拼音使用了pinyin4j这个插件,因为多音字的原因效果并不理想

 1 /**
 2      * 获得汉字拼音
 3      * @param name
 4      * @return
 5      */
 6     @SuppressWarnings("deprecation")
 7     public static String getPiYin(String src) {
 8         HanyuPinyinOutputFormat outFormat = new HanyuPinyinOutputFormat();
 9         outFormat.setCaseType(HanyuPinyinCaseType.LOWERCASE);
10         outFormat.setToneType(HanyuPinyinToneType.WITHOUT_TONE);
11         outFormat.setVCharType(HanyuPinyinVCharType.WITH_V);
12         try {
13             return PinyinHelper.toHanyuPinyinString(src, outFormat, "");
14         } catch (BadHanyuPinyinOutputFormatCombination e1) {
15             e1.printStackTrace();
16             return src;
17         }
18     }
19
20     /**
21      * 获得拼音首字母
22      * @param name
23      * @return
24      */
25     public static String getPinYinFirstLetter(String name){
26         char[] str=StringUtils.defaultIfEmpty(name, "").toCharArray();
27         String shouZiMu="";
28         for ( char string : str) {
29             shouZiMu+=getPiYin(String.valueOf(string)).charAt(0);
30         }
31         return shouZiMu;
32     }
33
34     public boolean isChinese(char c) {
35        Character.UnicodeBlock ub = Character.UnicodeBlock.of(c);
36        if (ub == Character.UnicodeBlock.CJK_UNIFIED_IDEOGRAPHS
37                || ub == Character.UnicodeBlock.CJK_COMPATIBILITY_IDEOGRAPHS
38                || ub == Character.UnicodeBlock.CJK_UNIFIED_IDEOGRAPHS_EXTENSION_A
39                || ub == Character.UnicodeBlock.GENERAL_PUNCTUATION
40                || ub == Character.UnicodeBlock.CJK_SYMBOLS_AND_PUNCTUATION
41                || ub == Character.UnicodeBlock.HALFWIDTH_AND_FULLWIDTH_FORMS) {
42            return true;
43        }
44        return false;
45     }
46
47     public boolean isChinese(String s) {
48         return s.matches("[\\u4E00-\\u9FA5]+");
49     }
时间: 2024-11-05 09:25:30

ChineseUtils的相关文章

Java字符串中文检测转换

public class ChineseUtils { public static void main(String[] args) { String str = "中国 (1).jpg"; try { String str2 = new String(str.getBytes("iso-8859-1"),"iso-8859-1"); System.out.println(str2); System.out.println(isMessyCode

仿美团实现地域选择(二)

介绍 上篇实现了PopupWindow选择地域,这篇介绍如何实现带有首字母的快速索引list,进行城市选择,我也是参考了相关博文才弄出来的,知道了原理,才发现如此简单. 其中有个开源项目可以参考,但与本文实现的方式略有不同. 地址:https://github.com/woozzu/IndexableListView 美团的城市选择看起来是这样的.本例中不包含搜索,有空再模仿研究下. 原理 1.侧边快速索引和首字母直接在framelayout中布局的,也可以用代码动态生成. 2.获取拼音首字写用

中文繁简互换以及获取中文字符串首字母

1.经常会遇到简体变繁体.繁体变简体和取中文字符串首字母的需求,最近整理了一个公共类,给大家分享.运行效果: 2.调用方法,代码如下: /// <summary> /// 简体变繁体 /// </summary> private void button1_Click(object sender, EventArgs e) { if (!string.IsNullOrWhiteSpace(textBox1.Text)) textBox2.Text = textBox1.Text.To