java获取中文串拼音或拼音首字母
例一:获取中文拼音首字母
中华人民共和国万岁!
zhrmghgws!
例二:获取中文拼音
我爱你中国!
woainizhongguo!
引入如下jar包:
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-collections4</artifactId>
<version>4.2</version>
</dependency>
<dependency>
<groupId>com.belerweb</groupId>
<artifactId>pinyin4j</artifactId>
<version>2.5.1</version>
</dependency>
创建工具类PinYinUtil:
import net.sourceforge.pinyin4j.PinyinHelper;
import org.apache.commons.lang3.ArrayUtils;
import org.apache.commons.lang3.StringUtils;
/***
* 获取中文串拼音或拼音首字母
* @author 杨红杰
* @date 2018/12/25
*/
public class PinYinUtil {
private PinYinUtil() {}
/**
* 获取中文拼音首字母,其他字符不变
*
* @param str
* @return String
*/
public static String getShortPinyin(String str) {
return getShortPinyin(str, true);
}
/**
* 获取中文拼音首字母
* @param str
* @param retain 为true保留其他字符
* @return String
*/
public static String getShortPinyin(String str, boolean retain) {
return getPinyin(str, true, retain);
}
/**
* 获取中文拼音,其他字符不变
*
* @param str
* @return String
*/
public static String getFullPinyin(String str) {
return getFullPinyin(str, true);
}
/**
* 获取中文拼音
* @param str
* @param retain 为true保留其他字符
* @return String
*/
public static String getFullPinyin(String str, boolean retain) {
return getPinyin(str, false, retain);
}
/**
* 获取中文拼音
*
* @param str
* @param shortPinyin 为true获取中文拼音首字母
* @param retain 为true保留其他字符
* @return String
*/
private static String getPinyin(String str, boolean shortPinyin, boolean retain) {
if (StringUtils.isBlank(str)) {
return "";
}
StringBuffer pinyinBuffer = new StringBuffer();
char[] arr = str.toCharArray();
for (char c : arr) {
String[] temp = PinyinHelper.toHanyuPinyinStringArray(c);
if (ArrayUtils.isNotEmpty(temp)) {
if (StringUtils.isNotBlank(temp[0])) {
if (shortPinyin) {
pinyinBuffer.append(temp[0].charAt(0));
} else {
pinyinBuffer.append(temp[0].replaceAll("\\d", ""));
}
}
} else {
if (retain) {
pinyinBuffer.append(c);
}
}
}
return pinyinBuffer.toString();
}
public static void main(String[] args) {
String str = "中华人民共和国万岁!";
System.out.println("例一:获取中文拼音首字母");
System.out.println(str);
System.out.println(getShortPinyin(str));
str = "我爱你中国!";
System.out.println("例二:获取中文拼音");
System.out.println(str);
System.out.println(getFullPinyin(str));
}
}
更多Java学习资料可关注:gzitcast
java获取中文串拼音或拼音首字母相关推荐
- C#汉字转拼音(npinyin)将中文转换成拼音全文或首字母
汉字转拼音貌似一直是C#开发的一个难题,无论什么方案都有一定的bug,之前使用了两种方案. 1.Chinese2Spell.cs 一些不能识别的汉字全部转为Z 2.Microsoft Visual S ...
- 中英文混合拼音排序(从首字母开始,相同则往下比较)
中英文混合拼音排序(从首字母开始,相同则往下比较) 中文/英文混合数据 进行转拼音(中文),按照26个字母顺序排序,从首字母开始比较,相同则比较第二个字母,如此类推,直到结束排序为止. pom.xml ...
- Excel汉字转拼音并提取首字母
Excel汉字转拼音并提取首字母步奏 1.打开VB窗口alt+f11可以快捷打开 2.如下图新建模块 3.模块建好后插入代码 Function getpychar(char)tmp = 65536 + ...
- iOS汉字转拼音,根据首字母创建索引条,UISearchController
我从后台获取到数据,想做的效果就是把获取到的数据文字的首字母提取出来做成索引条显示,便于用户选择,用到的知识就是,将汉字转换成拼音再提取首字母转换大小写,再排序,然后显示在索引条上 demo:http ...
- java 获取中文拼音首字母(缩写)
第一种: 直接上代码(有个别中文无法识别): import java.io.UnsupportedEncodingException; /*** * @author yuki_ho**/ public ...
- Java获取中文拼音、中文首字母缩写和中文首字母
我们有时候会遇到这样的情况,需要获取某些中文的拼音.中文首字母缩写和中文首字母,下面我将为大家介绍一下如何获取中文拼音的缩写. 1.项目建立和配置 首先,我们建立一个java项目,新建libs文件夹并 ...
- PinYin4j的基本使用 Java获取中文转拼音、获取中文拼音的首字母缩写
前言 在实际开发中,可能会遇到根据用户输入的中文拼音首字母缩写,来查询对应数据的功能需求,本文将提供一个操作中文转拼音.获取拼音首字母的工具类CV即用. 一.PinYin4j 简介 : pinyin4 ...
- java获取中文的拼音以及获取中文拼音的首字母
首先在pom文件中引入依赖 pinyin4j <dependencies><dependency><groupId>com.belerweb</groupId ...
- Java获取中文汉字拼音首字母方法二
效果如下 岐山县 qishanxian QSX Java代码 import net.sourceforge.pinyin4j.PinyinHelper; import net.sourceforge. ...
最新文章
- 树状笔记软件for linux,Ubuntu 14.04安装开源树状笔记管理软件 WikidPad 2.2
- IT职场人生系列之十八:危险职业(上)
- 微信小程序eventChannel页面间事件通信通道
- CSDN如何快速转载别人的博客(附简单详细方法)
- vsftpd.conf详解
- java list 替换 多线程_Java多线程处理List数据
- Silverlight 用DependencyProperty 自定义ImageButton控件 定义属性
- 对于SAP的月结相关流程介绍
- 保持SVN仓库结构只checkout部分子目录
- ruby 将字符串转为数组_Ruby程序将数组打印为字符串
- 数值计算详细笔记(一):基础数学知识回顾
- 任务栏流量监测工具 NetSpeedMonitor 在Windows 8下的安装使用
- 联想Y450电源管理无法调节屏幕亮度的解决办法
- RS485端子接线方法(带图)
- 【BST】Treap
- vue 直接访问静态图片_vue本地静态图片的路径问题解决方案
- Hibernate个版本下载地址
- Web 通信 之 长连接、长轮询
- LWN:终于能够防护 straight-line 预测执行漏洞了!
- FFMPEG:SPS和PPS