java汉字获取首字母
原文链接:java汉字获取首字母 - 走看看
前言
在项目中很多时候我们需要获取姓名或者名称的首字母或者全拼,以用于模糊查询或者字母查询,在这里分享一个实例;供小伙伴们参考。
导入jar包
<dependency><groupId>com.belerweb</groupId><artifactId>pinyin4j</artifactId><version>2.5.0</version>
</dependency>
代码
package com.xxxx.util;import net.sourceforge.pinyin4j.PinyinHelper;
import net.sourceforge.pinyin4j.format.HanyuPinyinOutputFormat;
import net.sourceforge.pinyin4j.format.HanyuPinyinToneType;import java.util.regex.Matcher;
import java.util.regex.Pattern;/*** 获取首字母工具** @author * @Date */
public class ChineseCharacterUtil {/*** 获取汉字首字母或全拼大写字母** @param chinese 汉字* @param isFull 是否全拼 true:表示全拼 false表示:首字母** @return 全拼或者首字母大写字符窜*/public static String getUpperCase(String chinese,boolean isFull){return convertHanzi2Pinyin(chinese,isFull).toUpperCase();}/*** 获取汉字首字母或全拼小写字母** @param chinese 汉字* @param isFull 是否全拼 true:表示全拼 false表示:首字母** @return 全拼或者首字母小写字符窜*/public static String getLowerCase(String chinese,boolean isFull){return convertHanzi2Pinyin(chinese,isFull).toLowerCase();}/*** 将汉字转成拼音* <P>* 取首字母或全拼** @param hanzi 汉字字符串* @param isFull 是否全拼 true:表示全拼 false表示:首字母** @return 拼音*/private static String convertHanzi2Pinyin(String hanzi,boolean isFull){/**** ^[u2E80-u9FFF]+$ 匹配所有东亚区的语言* ^[u4E00-u9FFF]+$ 匹配简体和繁体* ^[u4E00-u9FA5]+$ 匹配简体*/String regExp="^[u4E00-u9FFF]+$";StringBuffer sb=new StringBuffer();if(hanzi==null||"".equals(hanzi.trim())){return "";}String pinyin="";for(int i=0;i<hanzi.length();i++){char unit=hanzi.charAt(i);//是汉字,则转拼音if(match(String.valueOf(unit),regExp)){pinyin=convertSingleHanzi2Pinyin(unit);if(isFull){sb.append(pinyin);}else{sb.append(pinyin.charAt(0));}}else{sb.append(unit);}}return sb.toString();}/*** 将单个汉字转成拼音** @param hanzi 汉字字符** @return 拼音*/private static String convertSingleHanzi2Pinyin(char hanzi){HanyuPinyinOutputFormat outputFormat = new HanyuPinyinOutputFormat();outputFormat.setToneType(HanyuPinyinToneType.WITHOUT_TONE);String[] res;StringBuffer sb=new StringBuffer();try {res = PinyinHelper.toHanyuPinyinStringArray(hanzi,outputFormat);sb.append(res[0]);//对于多音字,只用第一个拼音} catch (Exception e) {e.printStackTrace();return "";}return sb.toString();}/**** 匹配* <P>* 根据字符和正则表达式进行匹配** @param str 源字符串* @param regex 正则表达式** @return true:匹配成功 false:匹配失败*/private static boolean match(String str,String regex){Pattern pattern=Pattern.compile(regex);Matcher matcher=pattern.matcher(str);return matcher.find();}/*** 测试方法*/public static void main(String[] args) {System.out.println(convertHanzi2Pinyin("弗格森的广东省",false).toUpperCase());}
}
java汉字获取首字母相关推荐
- java中英文获取首字母之后分组排序
package com.syz; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import ...
- C# 根据汉字获取首字母拼音或全拼
第一种方法.简单快速 若是求快,可以用下面这个方法,不需要什么库,直接写就完事 调用GetPYstring ,传入"世界和平",返回"SJHP" public ...
- python 汉字转拼音 获取首字母
方式一.通过第三方库 import pinyin print(pinyin.get('汉字'))# 获取首字母,可将中文字符串转为中文列表 然后获取每一个汉字的拼音字符串取第一个然后拼接即可print ...
- 记录一下:Java 汉字获取拼音或首字母工具类
记录一下:Java 汉字获取拼音或首字母工具类 Maven依赖配置 Java代码 本文主要记录一下在Java中,如何将字符串中的中文转化为拼音,获取汉字串拼音首字母,获取汉字串拼音的工具类,以及相关的 ...
- Java获取中文汉字拼音首字母方法一(更快速)
实现效果 文字内容:小苹果 拼音首字母:xpg 工具类 import java.io.UnsupportedEncodingException;/*** @author yang* @version ...
- java获取汉字拼音首字母A
public class GetChinessFirstSpell{ /// <summary> /// 汉字拼音首字母列表 本列表包含了20901个汉字,用于配合 GetChineseS ...
- java获取首字母_【Java】获取中文首字母
获取中文首字母 有时候,比如微信上根据名字拼音首字母排序并检索.那么用Java获取中文首字母是怎么实现的呢? 代码 不多说,直接上代码:(写个工具类) public class FirstCharUt ...
- java取字符串首字母_java 获取中文字符的首字母
原理: GB2312编码中的中文是按照拼音排序的 注意: 一些生僻的字无法获得正确的首字母,原因是这些字都是后加入的. import java.io.UnsupportedEncodingExcept ...
- 最强汉字得到首字母拼音java版
网上有很多汉字得到首字母拼音的代码,基本都出自一种方式,通过对private static final char[] chartable = { '啊', * '芭', '擦', '搭', '蛾', ...
最新文章
- Android 自定义View 三板斧之二——组合现有控件
- SQLite命令行程序说明
- 你的气质里藏着 英文_有小肚腩女人穿衣要讲究,针织套装裙洋气又时髦,穿出优雅气质...
- 40 行代码搞定主题词提取
- js处理DataSet数据源
- 嵌入式系统内存泄漏检测
- ffmpeg 将视频转换成图片 截取视频的一段
- HTML 教程-菜鸟教程
- 星巴克咖啡教室活动体验如何?
- 积分上限函数求导总结
- .Net Core裁剪图片并存入数据库
- 苹果账户登录_iOS 13的通过 Apple 登录第三方应用
- 首家共享充电宝倒闭了,王思聪要赌赢了吗?
- Vue--创建一个vue项目
- 2017百度世界大会 | 爱奇艺创始人CEO龚宇演讲速记
- java多线程实现龟兔赛跑
- 奇妙的 CSS MASK
- WWX的520(结构体排序)
- Zemax操作--8(激光扫描系统)
- 70道Java开发面试题及答案,linux内核驱动开发视频课程