java通讯录获取汉字首字母
1.本文只是使用了pinyin4J的主要功能,还有更多更好耍的功能,大家可以去研究官网文档。哈哈
2.pinyin4j的官方下载地址:https://sourceforge.net/projects/pinyin4j/files/
3.我们这里使用的版本是 pinyin4j 2.5.0
-
- package com.zr.util;
- import net.sourceforge.pinyin4j.PinyinHelper;
- import net.sourceforge.pinyin4j.format.HanyuPinyinCaseType;
- import net.sourceforge.pinyin4j.format.HanyuPinyinOutputFormat;
- import net.sourceforge.pinyin4j.format.HanyuPinyinToneType;
- import net.sourceforge.pinyin4j.format.HanyuPinyinVCharType;
- import net.sourceforge.pinyin4j.format.exception.BadHanyuPinyinOutputFormatCombination;
- /**
- * 拼音工具类
- *
- * @author lsf
- */
- public class PinYinUtil {
- /**
- * 将字符串中的中文转化为拼音,其他字符不变
- *
- * @param inputString
- * @return
- */
- public static String getPingYin(String inputString) {
- HanyuPinyinOutputFormat format = new HanyuPinyinOutputFormat();
- format.setCaseType(HanyuPinyinCaseType.LOWERCASE);
- format.setToneType(HanyuPinyinToneType.WITHOUT_TONE);
- format.setVCharType(HanyuPinyinVCharType.WITH_V);
- char[] input = inputString.trim().toCharArray();
- String output = "";
- try {
- for (int i = 0; i < input.length; i++) {
- if (java.lang.Character.toString(input[i]).matches("[\\u4E00-\\u9FA5]+")) {
- String[] temp = PinyinHelper.toHanyuPinyinStringArray(input[i], format);
- output += temp[0];
- } else
- output += java.lang.Character.toString(input[i]);
- }
- } catch (BadHanyuPinyinOutputFormatCombination e) {
- e.printStackTrace();
- }
- return output;
- }
- /**
- * 获取汉字串拼音首字母,英文字符不变
- * @param chinese 汉字串
- * @return 汉语拼音首字母
- */
- public static String getFirstSpell(String chinese) {
- StringBuffer pybf = new StringBuffer();
- char[] arr = chinese.toCharArray();
- HanyuPinyinOutputFormat defaultFormat = new HanyuPinyinOutputFormat();
- defaultFormat.setCaseType(HanyuPinyinCaseType.LOWERCASE);
- defaultFormat.setToneType(HanyuPinyinToneType.WITHOUT_TONE);
- for (int i = 0; i < arr.length; i++) {
- if (arr[i] > 128) {
- try {
- String[] temp = PinyinHelper.toHanyuPinyinStringArray(arr[i], defaultFormat);
- if (temp != null) {
- pybf.append(temp[0].charAt(0));
- }
- } catch (BadHanyuPinyinOutputFormatCombination e) {
- e.printStackTrace();
- }
- } else {
- pybf.append(arr[i]);
- }
- }
- return pybf.toString().replaceAll("\\W", "").trim();
- }
- /**
- * 获取汉字串拼音,英文字符不变
- * @param chinese 汉字串
- * @return 汉语拼音
- */
- public static String getFullSpell(String chinese) {
- StringBuffer pybf = new StringBuffer();
- char[] arr = chinese.toCharArray();
- HanyuPinyinOutputFormat defaultFormat = new HanyuPinyinOutputFormat();
- defaultFormat.setCaseType(HanyuPinyinCaseType.LOWERCASE);
- defaultFormat.setToneType(HanyuPinyinToneType.WITHOUT_TONE);
- for (int i = 0; i < arr.length; i++) {
- if (arr[i] > 128) {
- try {
- pybf.append(PinyinHelper.toHanyuPinyinStringArray(arr[i], defaultFormat)[0]);
- } catch (BadHanyuPinyinOutputFormatCombination e) {
- e.printStackTrace();
- }
- } else {
- pybf.append(arr[i]);
- }
- }
- return pybf.toString();
- }
- }
-
添加好工具类后,在程序中调用:
- //要获取的字段
- String szm = PinYinUtil.getFirstSpell(String string);
- //截取第一位
- String yis = szm.substring(0, 1);
- //输出结果并且把获取到的字母转换成大写
- System.out.println(yis.toUpperCase());
java通讯录获取汉字首字母的更多相关文章
- JS获取汉字首字母
//获取 汉字首字母 function makePy(str) { if (typeof (str) != "string") throw new Error(-1, " ...
- ASP.NET获取汉字首字母
/// <summary> /// 获取汉字首字母(可包含多个汉字) /// </summary> /// <param name="strText" ...
- php获取汉字首字母
php获取汉字首字母,可以用于按字母对数据进行检索排序等. 分享下网上找的代码.亲测有效. function getFirstCharter($str){ if(empty($str)){return ...
- JS实现获取汉字首字母拼音、全拼音及混拼音的方法
本文实例讲述了JS实现获取汉字首字母拼音.全拼音及混拼音的方法.分享给大家供大家参考,具体如下: 这里需要用到一个js获取汉字拼音的插件,可点击此处本站下载. 运行效果如下: 完整示例代码: ? 1 ...
- .NET获取汉字首字母
/// <summary> /// 获取汉字首字母(可包含多个汉字) /// </summary> /// <param name="strText" ...
- python获取汉字首字母
获取汉字首字母 关注公众号"轻松学编程"了解更多. 应用场景之一:可用于获取名字首字母,在数据库中查询记录时,可以用它来排序输出. from pytz import unicode ...
- php获取汉字首字母的函数
本文介绍用php实现汉字转化为首字母的方法,主要功能是:功能明确,易于修改维护和扩展: 英文的字串:不变返回(包括数字):中文字符串:返回拼音首字符: 中英混合串: 返回拼音首字符和英文. 网上的方法 ...
- php获取汉字首字母实例
在我们实际开发工作中,有时候需要获取输入汉字的首字母,然后存到库中,方便用户搜索相关信息,下面给出php代码,留做备用: //新添加获取汉子首字,首字字母 function pinyin($zh){ ...
- PHP获取汉字首字母并分组排序
<?php /** * 错误状态码定义 * User: xiucai * Date: 2018/3/11 * Time: 12:23 */ namespace extend; class Wor ...
随机推荐
- Spring的事务传播机制实例 (转)
1,Propagation.REQUIRED 如果当前没有事务,就新建一个事务,如果已经存在一个事务中,加入到这个事务中.详细解释在代码下方. 实例 员工service @Service public ...
- Java NIO浅析 转至 美团技术团队
出处: Java NIO浅析 NIO(Non-blocking I/O,在Java领域,也称为New I/O),是一种同步非阻塞的I/O模型,也是I/O多路复用的基础,已经被越来越多地应用到大型应用服 ...
- 第二章:排序算法 及其他 Java代码实现
目录 第二章:排序算法 及其他 Java代码实现 插入排序 归并排序 选择排序算法 冒泡排序 查找算法 习题 2.3.7 第二章:排序算法 及其他 Java代码实现 --算法导论(Introducti ...
- 11 Python之初识函数
---恢复内容开始--- 1. 什么是函数? f(x) = x + 1 y = x + 1 函数是对功能或者动作的封装 2. 函数的语法和定义 def 函数名(): 函数体 调用: 函数名() 3. ...
- SpringBoot + Vue + nginx项目部署(零基础带你部署)
一.环境.工具 jdk1.8 maven spring-boot idea VSVode vue 百度网盘(vue+springboot+nginx源码): 链接:https://pan.baidu. ...
- 误删除/dec/zero,/dev/null
误删除/dev/zero [root@MYSQL-MONGO145 dev]# mknod /dev/zero c 1 5[root@MYSQL-MONGO145 dev]# chmod 666 /d ...
- spring cloud 入门
某种程度上 软硬件 殊途同归了 (软件模仿硬件 总线设计, 资源定位 (寻址) ) spring 是什么 EDA ( Event-driven architecture ) (SOA , SOAP , ...
- 从命令行运行postman脚本
为什么要在命令行中运行 可以在无UI界面的服务器上运行 可以在持续集成系统上运行 运行准备 导出collection 安装nodejs和npm(或cnpm) 安装Newman 运行及生成测试报告支持4 ...
- PropertySource顺序
Spring Boot使用一个非常特殊的PropertySource顺序,该顺序旨在允许合理地覆盖值.按以下顺序考虑属性: $HOME/.config/spring-boot当devtools处于活动 ...
- fiddler抓包小技巧之自动保存抓包数据(可根据需求过滤)
首先 选择 如果有别的提示的话,你就按着提示走,就会安装一个编辑器,叫Fiddler Script. 正常情况下,你按着上面操作之后就会出现如下界面: 完事了之后,按下Ctrl+F来查找OnBefor ...