java汉字的拼音首字母_Java 获取汉字的拼音首字母
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 获取汉字的拼音首字母相关推荐
- java取字符串首字母_java 获取中文字符的首字母
原理: GB2312编码中的中文是按照拼音排序的 注意: 一些生僻的字无法获得正确的首字母,原因是这些字都是后加入的. import java.io.UnsupportedEncodingExcept ...
- java获取汉字的拼音首字母_java获取汉字的拼音首字母
import java.io.UnsupportedEncodingException; /** * 取得给定汉字串的首字母串,即声母串 * Title: ChineseCharToEn * @dat ...
- java获取汉字的拼音首字母_Java获取汉字拼音首字母
根据网上C#版和JAVA版改的.代码很短,但有些复杂的汉字取不了拼音,如"鑫"等.适用一般不是很复杂的情况. 如要更完整的版本,可以使用这个开源的pinyin4j组件.packag ...
- java 汉字 字母_JAVA获取中文汉字字符串拼音首字母,英文字符不变的工具类
java在处理项目需求时,有时需要排序,尤其是中文名字按0-9,A-Z进行首字母排序,这时候就需要首先要得到中文字符串的首字母,然后按照字母顺序进行排序,不多说,直接上代码,看java如何获取中文字符 ...
- java 获取拼音码_Java获取汉字拼音的全拼和首拼实现代码分享
import java.util.Collections; import java.util.Iterator; import java.util.LinkedHashMap; import java ...
- java首字母判断星期几_Java 获取汉字串首字母并大写和获取汉字的全拼(英文字符不变) 判断字符串是否为字母...
在开发一个姓名检索功能的时候 没有使用之前查找到的前端Layui-select 下拉框实现拼音全拼匹配/首字母模糊搜索 在数据库中增加了首字母和全拼的内容实现输入首字母/拼音来检索人员 所以需要用到人 ...
- java获取首字母_Java 获取中文首字母的方法
获取一个字符串的首字母是中文排序以及按照字母搜索的基础,一下是实现一个字符串转换为每个汉字首字母的字符串 //根据一个包含汉字的字符串返回一个汉字拼音首字母的字符串 public String get ...
- php获取汉字的首字母,php获取汉字拼音首字母的方法
现实中我们经常看到这样的说明,排名不分先后,按姓名首字母进行排序.这是中国人大多数使用的排序方法.那么在php程序中该如何操作呢? 下面就分享一下在php程序中获取汉字拼音的首字母的方法,在网上搜到的 ...
- oracle生成首字母,ORACLE获取汉字拼音首字母的函数
CREATE OR REPLACE FUNCTION PUB_GET_PY(p_汉字 CHAR DEFAULT '%') RETURN CHAR IS /*********************** ...
最新文章
- How to Use HTML5 FUll Screen API(怎样使用HTML5全屏接口)
- 利用Bash给Linux服务器增添色彩
- 函数图像在图形计算机的应用,浅谈图形计算器在高中函数教学中的应用
- 2018年全国多校算法寒假训练营练习比赛(第五场)题解
- java生成自己定义的表ID
- poj 2689 大范围素数
- 各种排序算法及其java程序实现
- 单片机的模拟智能灌溉系统
- linux最小化原则
- testng_TestNG @工厂注释
- 线程管理(一)线程的创建和运行
- 通讯录获取源码_[源码和文档分享]基于Java语言的C/S模式通讯录备份和查询软件...
- Phoenix报错(5) org.apache.hadoop.hive.ql.metadata.HiveException
- Windows网络编程之Socket高级编程简介
- 计算机主板大小性能区别,电脑主板是大板好还是小板好 主板中大板和小板的区别介绍...
- Namecheap无法登录、无法修改密码
- 可变剪切(选择性剪接)rmats2sashimiplot可视化安装与使用
- 搞一下整车以太网技术 | 01 汽车以太网PHY详解
- vue 使用video加载视频进行展示,视频循环自动播放
- 计算机科学转金融工程,计算机如何转金融与金融工程