022-pinyin4j工具类模板
模板一
- package ${enclosing_package};
- import java.util.Arrays;
- 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.exception.BadHanyuPinyinOutputFormatCombination;
- public class ${primary_type_name} {
- /**
- * 将字符串转换成拼音数组
- *
- * @param src
- * @return
- */
- public static String[] stringToPinyin(String src) {
- return stringToPinyin(src, false, null);
- }
- /**
- * 将字符串转换成拼音数组
- *
- * @param src
- * @return
- */
- public static String[] stringToPinyin(String src, String separator) {
- return stringToPinyin(src, true, separator);
- }
- /**
- * 将字符串转换成拼音数组
- *
- * @param src
- * @param isPolyphone
- * 是否查出多音字的所有拼音
- * @param separator
- * 多音字拼音之间的分隔符
- * @return
- */
- public static String[] stringToPinyin(String src, boolean isPolyphone,
- String separator) {
- // 判断字符串是否为空
- if ("".equals(src) || null == src) {
- return null;
- }
- char[] srcChar = src.toCharArray();
- int srcCount = srcChar.length;
- String[] srcStr = new String[srcCount];
- for (int i = 0; i < srcCount; i++) {
- srcStr[i] = charToPinyin(srcChar[i], isPolyphone, separator);
- }
- return srcStr;
- }
- /**
- * 将单个字符转换成拼音
- *
- * @param src
- * @return
- */
- public static String charToPinyin(char src, boolean isPolyphone,
- String separator) {
- // 创建汉语拼音处理类
- HanyuPinyinOutputFormat defaultFormat = new HanyuPinyinOutputFormat();
- // 输出设置,大小写,音标方式
- defaultFormat.setCaseType(HanyuPinyinCaseType.LOWERCASE);
- defaultFormat.setToneType(HanyuPinyinToneType.WITHOUT_TONE);
- StringBuffer tempPinying = new StringBuffer();
- // 如果是中文
- if (src > 128) {
- try {
- // 转换得出结果
- String[] strs = PinyinHelper.toHanyuPinyinStringArray(src,
- defaultFormat);
- // 是否查出多音字,默认是查出多音字的第一个字符
- if (isPolyphone && null != separator) {
- for (int i = 0; i < strs.length; i++) {
- tempPinying.append(strs[i]);
- if (strs.length != (i + 1)) {
- // 多音字之间用特殊符号间隔起来
- tempPinying.append(separator);
- }
- }
- } else {
- tempPinying.append(strs[0]);
- }
- } catch (BadHanyuPinyinOutputFormatCombination e) {
- e.printStackTrace();
- }
- } else {
- tempPinying.append(src);
- }
- return tempPinying.toString();
- }
- public static String hanziToPinyin(String hanzi) {
- return hanziToPinyin(hanzi, " ");
- }
- /**
- * 将汉字转换成拼音
- *
- * @param hanzi
- * @param separator
- * @return
- */
- public static String hanziToPinyin(String hanzi, String separator) {
- // 创建汉语拼音处理类
- HanyuPinyinOutputFormat defaultFormat = new HanyuPinyinOutputFormat();
- // 输出设置,大小写,音标方式
- defaultFormat.setCaseType(HanyuPinyinCaseType.LOWERCASE);
- defaultFormat.setToneType(HanyuPinyinToneType.WITHOUT_TONE);
- String pinyingStr = "";
- try {
- pinyingStr = PinyinHelper.toHanyuPinyinString(hanzi, defaultFormat,
- separator);
- } catch (BadHanyuPinyinOutputFormatCombination e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- }
- return pinyingStr;
- }
- /**
- * 将字符串数组转换成字符串
- *
- * @param str
- * @param separator
- * 各个字符串之间的分隔符
- * @return
- */
- public static String stringArrayToString(String[] str, String separator) {
- StringBuffer sb = new StringBuffer();
- for (int i = 0; i < str.length; i++) {
- sb.append(str[i]);
- if (str.length != (i + 1)) {
- sb.append(separator);
- }
- }
- return sb.toString();
- }
- /**
- * 简单的将各个字符数组之间连接起来
- *
- * @param str
- * @return
- */
- public static String stringArrayToString(String[] str) {
- return stringArrayToString(str, "");
- }
- /**
- * 将字符数组转换成字符串
- *
- * @param str
- * @param separator
- * 各个字符串之间的分隔符
- * @return
- */
- public static String charArrayToString(char[] ch, String separator) {
- StringBuffer sb = new StringBuffer();
- for (int i = 0; i < ch.length; i++) {
- sb.append(ch[i]);
- if (ch.length != (i + 1)) {
- sb.append(separator);
- }
- }
- return sb.toString();
- }
- /**
- * 将字符数组转换成字符串
- *
- * @param str
- * @return
- */
- public static String charArrayToString(char[] ch) {
- return charArrayToString(ch, " ");
- }
- /**
- * 取汉字的首字母
- *
- * @param src
- * @param isCapital
- * 是否是大写
- * @return
- */
- public static char[] getHeadByChar(char src, boolean isCapital) {
- // 如果不是汉字直接返回
- if (src <= 128) {
- return new char[] { src };
- }
- // 获取所有的拼音
- String[] pinyingStr = PinyinHelper.toHanyuPinyinStringArray(src);
- // 创建返回对象
- int polyphoneSize = pinyingStr.length;
- char[] headChars = new char[polyphoneSize];
- int i = 0;
- // 截取首字符
- for (String s : pinyingStr) {
- char headChar = s.charAt(0);
- // 首字母是否大写,默认是小写
- if (isCapital) {
- headChars[i] = Character.toUpperCase(headChar);
- } else {
- headChars[i] = headChar;
- }
- i++;
- }
- return headChars;
- }
- /**
- * 取汉字的首字母(默认是大写)
- *
- * @param src
- * @return
- */
- public static char[] getHeadByChar(char src) {
- return getHeadByChar(src, true);
- }
- /**
- * 查找字符串首字母
- *
- * @param src
- * @return
- */
- public static String[] getHeadByString(String src) {
- return getHeadByString(src, true);
- }
- /**
- * 查找字符串首字母
- *
- * @param src
- * @param isCapital
- * 是否大写
- * @return
- */
- public static String[] getHeadByString(String src, boolean isCapital) {
- return getHeadByString(src, isCapital, null);
- }
- /**
- * 查找字符串首字母
- *
- * @param src
- * @param isCapital
- * 是否大写
- * @param separator
- * 分隔符
- * @return
- */
- public static String[] getHeadByString(String src, boolean isCapital,
- String separator) {
- char[] chars = src.toCharArray();
- String[] headString = new String[chars.length];
- int i = 0;
- for (char ch : chars) {
- char[] chs = getHeadByChar(ch, isCapital);
- StringBuffer sb = new StringBuffer();
- if (null != separator) {
- int j = 1;
- for (char ch1 : chs) {
- sb.append(ch1);
- if (j != chs.length) {
- sb.append(separator);
- }
- j++;
- }
- } else {
- sb.append(chs[0]);
- }
- headString[i] = sb.toString();
- i++;
- }
- return headString;
- }
- public static void main(String[] args) {
- // pin4j 简码 和 城市编码
- String s1 = "中华人民共和国";
- String[] headArray = getHeadByString(s1); // 获得每个汉字拼音首字母
- System.out.println(Arrays.toString(headArray));
- String s2 ="长城" ;
- System.out.println(Arrays.toString(stringToPinyin(s2,true,",")));
- String s3 ="长";
- System.out.println(Arrays.toString(stringToPinyin(s3,true,",")));
- }
- }
022-pinyin4j工具类模板的更多相关文章
- JDBC 工具类模板c3p0
JDBC 工具类模板 package com.itheima.sh.utils; import com.mchange.v2.c3p0.ComboPooledDataSource; import ja ...
- 033-JsonUtils 工具类模板
模板一:使用的是jackson package cn.e3mall.common.utils; import java.util.List; import com.fasterxml.jackson. ...
- 031-CookieUtils 工具类模板
模板一: package com.leo.common.utils; import java.io.UnsupportedEncodingException; import java.net.URLD ...
- pinyin4j工具类
<!-- 导入pinyin4j --> <dependency> <groupId>com.belerweb</groupId> <artifac ...
- 009-MailUtils工具类模板
版本一:JavaMail的一个工具类 package ${enclosing_package}; import java.security.GeneralSecurityException; impo ...
- Swift - 简单封装一个工具类模板
创建模板类(封装一个类) 例1:新建一个名字叫做 Product 的类 Product.swift File 的内容 class Product { var name: String var desc ...
- 032-IDUtils 工具类模板
模板一: package cn.e3mall.common.utils; import java.util.Random; /** * 各种id生成策略 * @title:IDUtils * @des ...
- DBCP连接池工具类模板
package ${enclosing_package}; import java.io.InputStream; import java.sql.Connection; import java.sq ...
- 004-C3P0连接池工具类模板
package ${enclosing_package}; import java.sql.Connection; import java.sql.ResultSet; import java.sql ...
随机推荐
- Bitmap压缩到指定尺寸大小,获取圆角、圆形图片
/** * 使用Matrix将Bitmap压缩到指定大小 * @param bitmap * @param w * @param h * @return */ public static Bitmap ...
- Ubuntu配置ip和dns后还是不能访问外网
https://blog.csdn.net/WFping518/article/details/81011722
- WM_QUERYENDSESSION与WM_ENDSESSION
此文已由作者王荣涛授权网易云社区发布. 欢迎访问网易云社区,了解更多网易技术产品运营经验. 首先XP系统和Vista以后的系统,这两个消息的处理方式是不同的. XP系统 系统发送WM_QUERYEND ...
- React进阶篇(1) -- react-router4模块化
本篇内容: 单一的路由无嵌套 多层嵌套路由 获取路径中的参数 按需加载 单一的路由无嵌套 routers.js import Home from 'components/Home'; import N ...
- spring boot 第一个Dome
1.创建Maven项目 按照下面的步骤 项目创建完成后的目录结构 2. 参照Spring boot官方文档修改pom.xml 修改 maven编译的jdk版本 将spring boot设置为 pare ...
- PHP获取对象的纯数字属性
php的对象属性 我们知道获取php的对象属性用箭头: echo $obj->name; 如果属性名是一个变量,那么可以用: $var = 'name'; echo $obj->$var; ...
- bzoj 3864: Hero meet devil(dp套dp)
题面 给你一个只由\(AGCT\)组成的字符串\(S (|S| ≤ 15)\),对于每个\(0 ≤ .. ≤ |S|\),问 有多少个只由\(AGCT\)组成的长度为\(m(1 ≤ m ≤ 1000) ...
- vmware vSphere虚拟网络(一)
为了更好的了解vSphere网络虚拟化解决方案,这里引入了一些概念,以便我们更好的了解虚拟网络. 一.网卡: 物理网卡称为vmnic,在ESXi中,第一块物理网卡叫做vmnic0,第二块叫做vmnic ...
- centos安装mysql57
下载源安装文件 https://dev.mysql.com/downloads/repo/yum/ wget http://repo.mysql.com//mysql57-community-rele ...
- SJTU 机试 数学
题目描述 给定n,a求最大的k,使n!可以被a^k整除但不能被a^(k+1)整除. 输入描述: 两个整数n(2<=n<=1000),a(2<=a<=1000) 输出描述: 一个 ...