使用到的maven依赖

<dependency><groupId>com.belerweb</groupId><artifactId>pinyin4j</artifactId><version>2.5.1</version>
</dependency>
package com.scmp.common.utils;import net.dreamlu.mica.core.utils.$;
import org.apache.commons.lang3.StringUtils;import net.sourceforge.pinyin4j.PinyinHelper;
import net.sourceforge.pinyin4j.format.HanyuPinyinOutputFormat;
import net.sourceforge.pinyin4j.format.HanyuPinyinToneType;
import net.sourceforge.pinyin4j.format.exception.BadHanyuPinyinOutputFormatCombination;/*** 中文转拼音/简码* * @author tyg* @date 2018年9月5日下午2:55:02*/
public class PinYinUtil {/** 纯字母 */public static final String ONLY_LETTER_REG = "^[a-zA-Z]{1,}$";/** pinyin4j格式类 */private static final HanyuPinyinOutputFormat FORMAT;// 通过构造方法进行初始化static {/** 设置需要转换的拼音格式 以天为例 * HanyuPinyinToneType.WITHOUT_TONE 转换为tian* HanyuPinyinToneType.WITH_TONE_MARK 转换为tian1* HanyuPinyinVCharType.WITH_U_UNICODE 转换为tiān*/FORMAT = new HanyuPinyinOutputFormat();FORMAT.setToneType(HanyuPinyinToneType.WITHOUT_TONE);}/*** 对单个字进行转换* @param data 字符* @return String* @author tyg* @date   2018年9月5日下午3:08:48*/private static String getCharPinYin(char data) {try {// 执行转换String[] pinyin = PinyinHelper.toHanyuPinyinStringArray(data, FORMAT);// pinyin4j规则,当转换的符串不是汉字,就返回nullif ($.isEmpty(pinyin)) {return null;}// 多音字会返回一个多音字拼音的数组,pinyiin4j并不能有效判断该字的读音return pinyin[0];} catch (BadHanyuPinyinOutputFormatCombination e) {e.printStackTrace();}return null;}/*** 汉字转换为拼音的全拼,* 例:四川省,sichuansheng* 例:四**川省,si**chuansheng* @param chinese 汉字* @return String* @author tyg* @date   2018年9月5日下午3:08:42*/public static String getPinYin(String chinese) {StringBuilder sb = new StringBuilder();// 循环字符串for (int i = 0; i < chinese.length(); i++) {String tempStr = getCharPinYin(chinese.charAt(i));// 非汉字直接拼接if (tempStr == null) {sb.append(chinese.charAt(i));} else {sb.append(tempStr);}}return sb.toString();}/*** 获取汉字的首字母(只会对汉字进行处理),例:四川省,scs* @param chinese 需转换的汉字* @return String* @author tyg* @date   2018年9月5日下午3:31:03*/public static String getInitial(String chinese) {if ($.isBlank(chinese)) {return null;}StringBuilder sb = new StringBuilder();// 循环字符串for (int i = 0; i < chinese.length(); i++) {String tempStr = getCharPinYin(chinese.charAt(i));if (tempStr != null) {sb.append(tempStr.charAt(0));}}return sb.toString();}/*** 转换为每个汉字对应拼音首字母字符串(会对汉字和字母进行处理),例:四川省cds,scscds* @param chinese 需转换的汉字* @return String* @author tyg* @date   2018年10月11日上午11:27:25*/public static String getInitialTwo(String chinese) {if (StringUtils.isBlank(chinese)) {return null;}StringBuilder sb = new StringBuilder();// 循环字符串for (int i = 0; i < chinese.length(); i++) {String tempStr = getCharPinYin(chinese.charAt(i));if (tempStr != null) {sb.append(tempStr.charAt(0));} else if(chinese.substring(i, i+1).matches(ONLY_LETTER_REG)){sb.append(chinese.charAt(i));}}return sb.toString();}public static void main(String[] args) {System.out.println(getPinYin("我**爱00你"));System.out.println(getPinYin("成都市"));System.out.println(getInitial("四川省"));System.out.println(getInitialTwo("四川省cds"));System.out.println("F3A".substring(0, 1).matches(ONLY_LETTER_REG));}
}

java获取一段话的首字母或拼音相关推荐

  1. java获取中文字符串汉语拼音和首字母

    业务需求:将用户中文名字根据拼音首字母分类排序 直接上代码: 引入依赖: <dependency><groupId>com.belerweb</groupId>&l ...

  2. Android 获取一段字符串的首字母的解决方案

    最近的项目需要一个功能,将城市名称按首字母查询并加入索引,百度.谷歌了好久,看到的文章解决方案大概相同,就是:通过汉字对应的国际一级汉字区位码进行获取首字母,但是目前一级区位码收录的汉字并不是特别多, ...

  3. PHP 获取第一个汉字大写首字母

    PHP 获取第一个汉字大写首字母 /*** MethodName:获取第一个汉字大写首字母* Comment:*/ function getFirstCharters($str) {if (empty ...

  4. mysql实现根据同音字、首字母、拼音进行模糊搜索(复刻钉钉模糊搜索)

    公司新上了一款低代码平台的项目,在使用过程中用户反馈搜索功能体感不好,不如钉钉的搜索灵活则尝试复刻了一下钉钉的灵活搜索,实现方式可能不同但最终展现的效果是一致的,特此记录 待优化: mysql自定义函 ...

  5. java实现大段中文转拼音首字母、拼音全拼

    话不多说,上代码: package cn.jiangshuai.personManage;import java.util.Scanner;import net.sourceforge.pinyin4 ...

  6. java将汉字转成拼音首字母大写字母_java实现将汉字转为首字母、拼音

    本文转自java实现将汉字转为拼音 作者itRed 本人仅稍作整理,并提出一些问题.问题的话暂时没时间处理,等以后有时间了再更新. 测试参数 String info="汉字转换为拼音&quo ...

  7. Java获取汉字全拼和首拼

    1       pinyin4j是一个开源项目,使用它可以很容易的获取汉字的拼音,这也是我们经常需要用到的功能:下面是一个应用,获取汉字首字母或者全拼的方法 package com.yjck.piny ...

  8. 获取汉字的首字母和拼音

    /// /// 获取汉字的首字母和全拼 /// public class ChineseCode { protected string _CnTxt; protected string _EnTxt; ...

  9. java 汉字转换全拼、首字母拼音

    最近接到需求,要求商城中进行半模糊搜索时,输入拼音字母同样要求进行自动匹配出相关品牌.类目.关键词等数据,从而进行筛选商品 本片内容只记录汉字转换拼音 方案一:在mysql数据库中编写函数,此方法存在 ...

  10. mysql 汉字字母拼音_mysql 汉字按拼音字母排序、获取拼音首字母、拼音全拼

    一.汉字utf-8 转gbk排序 ORDER BY CONVERT(city_name USING gbk) 二.获取词语拼音首字母 创建函数 CREATE FUNCTION `firstPinyin ...

最新文章

  1. Windows下的DNS命令用法
  2. Apache用户目录枚举工具apache-users
  3. VB.NET 调用外部程序
  4. [android] Serializable 和 Parcelable 区别
  5. vb.net webclient 网络目录是否存在_牛眼IPO | 怡合达IPO申请待审核 产品目录被指涉嫌侵权...
  6. java成绩查询_JavaWeb项目第三次总结_成绩查询的实现
  7. 【HTTPS运维神器】终于等到你!MySSL企业版重磅上线!
  8. 你可以分配多大的内存
  9. 手动配置gradle
  10. 可编译运行的安卓USB/OTG摄像头程序
  11. python怎么播放音乐_Python实现在线音乐播放器
  12. 极域课堂忘记密码,解决方法,万能密码
  13. [UE4][C++]简单超人小游戏(游戏接受键盘事件)
  14. Scaling SPADE to “Big Provenance”(论文阅读)
  15. 【1076】正常血压
  16. Storm-Kafka: Offset lags for kafka not supported for older versions
  17. windows下qt程序报错“the inferior stopped because it triggered an exception”
  18. Mac OS 关闭系统更新提示小红点
  19. Redis——狂聊教程笔记
  20. css渐变斑马条纹_创建斑马条纹表

热门文章

  1. 浅析淘宝数据魔方技术架构
  2. Word——从任意页开始设置页码的方法
  3. Word 2010 从任意页码重新开始
  4. Java 汉字 转 拼音/首字母
  5. vue 的ui组件库
  6. 1700x关闭超线程超频_关闭锐龙9 3900X超线程 游戏帧数居然更高
  7. 今天是愚人节。(Today is April Fools' Day.)网页需要倾斜o(∩_∩)o
  8. 计算机excel无法打开,电脑excel打不开的解决方法
  9. 中国.NET:各地微软技术俱乐部汇总(持续更新中...)
  10. c语言死循坏的作用,c语言什么是死循环