java 根据字符串得到该字符串首写的拼音码列表

zz/2024/6/13 22:59:06

添加maven依赖

        <dependency><groupId>com.belerweb</groupId><artifactId>pinyin4j</artifactId><version>2.5.0</version></dependency>

也可以自己自己下载jar包

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  / zhangzihao* */
public class StringPinYinCodeUtil {/*** 根据字符串得到该字符串首写的拼音码【字符串不能为空,替换掉空格】* @param code* @return*/public static String getConvertCode(String strName) {String replaceCode = strName.replace(" ", "");String subStr = replaceCode;if (subStr.length() > 12) {subStr = subStr.substring(0, 12);}String resultCode = getPinYinHeadChar(subStr);return resultCode;}/*** 将汉字转换为全拼* * @param src* @return String*/public static String getPinYin(String src) {char[] t1 = null;t1 = src.toCharArray();// System.out.println(t1.length);  String[] t2 = new String[t1.length];// System.out.println(t2.length);  // 设置汉字拼音输出的格式  HanyuPinyinOutputFormat t3 = new HanyuPinyinOutputFormat();t3.setCaseType(HanyuPinyinCaseType.LOWERCASE);t3.setToneType(HanyuPinyinToneType.WITHOUT_TONE);t3.setVCharType(HanyuPinyinVCharType.WITH_V);String t4 = "";int t0 = t1.length;try {for (int i = 0; i < t0; i++) {// 判断是否为汉字字符  // System.out.println(t1[i]);  if (Character.toString(t1[i]).matches("[\\u4E00-\\u9FA5]+")) {t2 = PinyinHelper.toHanyuPinyinStringArray(t1[i], t3);// 将汉字的几种全拼都存到t2数组中  t4 += t2[0];// 取出该汉字全拼的第一种读音并连接到字符串t4后  } else {// 如果不是汉字字符,直接取出字符并连接到字符串t4后  t4 += Character.toString(t1[i]);}}} catch (BadHanyuPinyinOutputFormatCombination e) {// TODO Auto-generated catch block  e.printStackTrace();}return t4;}/*** 提取每个汉字的首字母* * @param str* @return String*/public static String getPinYinHeadChar(String str) {String convert = "";for (int j = 0; j < str.length(); j++) {char word = str.charAt(j);// 提取汉字的首字母  String[] pinyinArray = PinyinHelper.toHanyuPinyinStringArray(word);if (pinyinArray != null) {convert += pinyinArray[0].charAt(0);} else {convert += word;}}return convert;}/*** 将字符串转换成ASCII码* * @param cnStr* @return String*/public static String getCnASCII(String cnStr) {StringBuffer strBuf = new StringBuffer();// 将字符串转换成字节序列  byte[] bGBK = cnStr.getBytes();for (int i = 0; i < bGBK.length; i++) {// System.out.println(Integer.toHexString(bGBK[i] & 0xff));  // 将每个字符转换成ASCII码  strBuf.append(Integer.toHexString(bGBK[i] & 0xff) + " ");}return strBuf.toString();}}

测试用例:

String code = StringPinYinCodeUtil.getPinYinHeadChar("转化的字符串");

http://www.ngui.cc/zz/2748858.html

相关文章

java json 间的互相转化,工具化转化,代码少

java json 间的互相转化, 主要通过 alibaba 的 fastjson 来转化 package test.json;import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONObject;import java.io.IOException; import java.text.ParseException; import java.util.List;/*** Author:zzh Email…

springboot 启动异常 javax/servlet/ServletContext Unable to start embedded container; nested exception is

场景描述 项目中用到spring boot进行带页面的开发&#xff0c;从github上的simples中下载了对应的spring-boot-sample-web-jsp项目&#xff0c;经简单修改之后死活启动不起来&#xff0c;各种异常。spring-boot以简单容易上手为核心宗旨&#xff0c;可为什么在引入jar时就会出…

Linux java基础环境搭建 ->JDK

JDK&#xff1a; 1.百度搜索jdk下载&#xff0c;进入oracle官网 比如&#xff1a;https://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html 2. 在linux 进行下载该链接 使用 wget&#xff1a; wget http://download.oracle.com/otn-pub/java/jd…

Linux->mysql基本操作命令及常见问题

常用命令 连接数据库&#xff1a;mysql -uroot -p 输入相应密码允许数据库远程连接 use mysql; update user set host% where user用户名; flush privileges;显示 数据库: show databases; 显示 数据库的表&#xff1a;show tables;创建数据库并指定编码 create database 数据…

零:初识Linux基础知识

通用知识 上大学使用的都是Windows系统&#xff0c;界面友好&#xff0c;上手快&#xff0c;习惯性的点点点操作大部分的课程在windows中操作&#xff0c;比如C用的Vistual Studio&#xff0c;学数据库的SQL Server大学中的操作系统更加偏向理论研究&#xff0c;至于到底是怎么…

Linux 查看磁盘 查看磁盘IO并找出占用 并找出占用IO读写很高的进程

前言 系统&#xff1a;Centos环境&#xff1a;测试环境服务器类型&#xff1a;联想&#xff08;ThinkServer&#xff09;塔式服务器 TS250测试童鞋反馈系统很卡&#xff0c;保存数据非常非常慢&#xff0c;第一反应是重启应用及数据库&#xff0c;不一会说还是非常慢&#xff…

【面试大全-Spring】Spring Bean是如何创建的

在Spring中&#xff0c;万物都是bean对象&#xff0c;每一个对象都可以封装成BeanDefinition&#xff0c;然后去生成bean对象。 所以首先第一步&#xff0c;spring要找到哪些bean需要实例化&#xff0c;第一种是xml的方式&#xff0c;如果需要实例化bean就在xml中配置bean标签&…

【面试大全-Java】必备基础

Java语言有哪些特点 简单易学、提供丰富的类库面向对象、高内聚低耦合与平台无关、JVM跨平台可靠安全、支持多线程面向对象和面向过程的区别 面向过程:是分析解决问题的步骤,然后用函数把这些步骤一步步实现,然后在使用的时候一起调用即可,性能较高,所以单片机嵌入式开发都…

【元宇宙】当前元宇宙运行规则问题与展望

一、背景&#xff1a;愈演愈烈的“元宇宙热” 当赛博朋克科幻小说《雪崩》&#xff08;Snow Crash&#xff09;在1992年发表之时&#xff0c;作者尼尔斯蒂芬森(Neal Stephenson)绝不会想到自己提出的“元宇宙”&#xff08;Metaverse&#xff09;概念竟然会在十九年后的资本市场…

6月26日网络编程

网络编程 1、软件之间通信条件&#xff1a; a.找到对方IP b.数据要发送到对方指定的应用程序上&#xff0c;为了表示这些程序&#xff0c;所以给这些网络应用程序都用数字进行标示。 为了方便称呼这个数字&#xff0c;叫做端口&#xff0c;逻辑端口。 c.定义通信规则。既成…