Java 获取汉字的拼音首字母:

pom.xml 引用 pinyin4j 包:

com.belerweb

pinyin4j

2.5.0

PinyinUtil 类:

package com.xxx.common.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;

public class PinyinUtil {

/**

* 获取汉字首字母或全拼大写字母

*

* @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();

}

/**

* 将汉字转成拼音

*

* 取首字母或全拼

*

* @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

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();

}

/***

* 匹配

*

* 根据字符和正则表达式进行匹配

*

* @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();

}

}

欢迎分享,(木庄网络博客交流QQ群:562366239)

java汉字的拼音首字母_Java 获取汉字的拼音首字母相关推荐

  1. java取字符串首字母_java 获取中文字符的首字母

    原理: GB2312编码中的中文是按照拼音排序的 注意: 一些生僻的字无法获得正确的首字母,原因是这些字都是后加入的. import java.io.UnsupportedEncodingExcept ...

  2. java获取汉字的拼音首字母_java获取汉字的拼音首字母

    import java.io.UnsupportedEncodingException; /** * 取得给定汉字串的首字母串,即声母串 * Title: ChineseCharToEn * @dat ...

  3. java获取汉字的拼音首字母_Java获取汉字拼音首字母

    根据网上C#版和JAVA版改的.代码很短,但有些复杂的汉字取不了拼音,如"鑫"等.适用一般不是很复杂的情况. 如要更完整的版本,可以使用这个开源的pinyin4j组件.packag ...

  4. java 汉字 字母_JAVA获取中文汉字字符串拼音首字母,英文字符不变的工具类

    java在处理项目需求时,有时需要排序,尤其是中文名字按0-9,A-Z进行首字母排序,这时候就需要首先要得到中文字符串的首字母,然后按照字母顺序进行排序,不多说,直接上代码,看java如何获取中文字符 ...

  5. java 获取拼音码_Java获取汉字拼音的全拼和首拼实现代码分享

    import java.util.Collections; import java.util.Iterator; import java.util.LinkedHashMap; import java ...

  6. java首字母判断星期几_Java 获取汉字串首字母并大写和获取汉字的全拼(英文字符不变) 判断字符串是否为字母...

    在开发一个姓名检索功能的时候 没有使用之前查找到的前端Layui-select 下拉框实现拼音全拼匹配/首字母模糊搜索 在数据库中增加了首字母和全拼的内容实现输入首字母/拼音来检索人员 所以需要用到人 ...

  7. java获取首字母_Java 获取中文首字母的方法

    获取一个字符串的首字母是中文排序以及按照字母搜索的基础,一下是实现一个字符串转换为每个汉字首字母的字符串 //根据一个包含汉字的字符串返回一个汉字拼音首字母的字符串 public String get ...

  8. php获取汉字的首字母,php获取汉字拼音首字母的方法

    现实中我们经常看到这样的说明,排名不分先后,按姓名首字母进行排序.这是中国人大多数使用的排序方法.那么在php程序中该如何操作呢? 下面就分享一下在php程序中获取汉字拼音的首字母的方法,在网上搜到的 ...

  9. oracle生成首字母,ORACLE获取汉字拼音首字母的函数

    CREATE OR REPLACE FUNCTION PUB_GET_PY(p_汉字 CHAR DEFAULT '%') RETURN CHAR IS /*********************** ...

最新文章

  1. How to Use HTML5 FUll Screen API(怎样使用HTML5全屏接口)
  2. 利用Bash给Linux服务器增添色彩
  3. 函数图像在图形计算机的应用,浅谈图形计算器在高中函数教学中的应用
  4. 2018年全国多校算法寒假训练营练习比赛(第五场)题解
  5. java生成自己定义的表ID
  6. poj 2689 大范围素数
  7. 各种排序算法及其java程序实现
  8. 单片机的模拟智能灌溉系统
  9. linux最小化原则
  10. testng_TestNG @工厂注释
  11. 线程管理(一)线程的创建和运行
  12. 通讯录获取源码_[源码和文档分享]基于Java语言的C/S模式通讯录备份和查询软件...
  13. Phoenix报错(5) org.apache.hadoop.hive.ql.metadata.HiveException
  14. Windows网络编程之Socket高级编程简介
  15. 计算机主板大小性能区别,电脑主板是大板好还是小板好 主板中大板和小板的区别介绍...
  16. Namecheap无法登录、无法修改密码
  17. 可变剪切(选择性剪接)rmats2sashimiplot可视化安装与使用
  18. 搞一下整车以太网技术 | 01 汽车以太网PHY详解
  19. vue 使用video加载视频进行展示,视频循环自动播放
  20. 计算机科学转金融工程,计算机如何转金融与金融工程

热门文章

  1. U盘修复的大致思路和过程
  2. Erasure code 原理
  3. 基于深度学习的探地雷达图像异常智能判译技术和软件
  4. 软件压力测试怎么做?压力测试报告需要多少费用?
  5. 为什么程序员都特别想要一把机械键盘?
  6. 天猫店申请:申请的品牌名与注册号对应的商标名不匹配
  7. 前端移动Web第四天案例:阿里百秀首页-响应式布局(bootstrap框架)
  8. 魔趣吧遭小人诬陷为骗子的说明
  9. AMQP协议是什么?
  10. ping服务器名位置解析,ping和ipconfig命令详解