博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
java 拼音工具栏,Java工具集-拼音工具类
阅读量:5011 次
发布时间:2019-06-12

本文共 2989 字,大约阅读时间需要 9 分钟。

添加依赖

com.belerweb

pinyin4j

2.5.0

代码示例

package com.simple.util.base.extend;

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;

import org.apache.commons.lang3.StringUtils;

/**

* @program: simple_tools

* @description: 拼音工具类

* @author: Mr.chen

* @create: 2020-06-09 10:30

**/

public class PinyinUtil {

public static String pinyin(char c) {

String[] pinyins = PinyinHelper.toHanyuPinyinStringArray(c);

if (pinyins == null) {

return null;

}

return pinyins[0];

}

// 使用PinYin4j.jar将汉字转换为拼音

public static String chineseToPinyin(String chinese) {

if (StringUtils.isBlank(chinese)) {

return chinese;

}

StringBuffer sb = new StringBuffer();

char[] chars = chinese.toCharArray();

HanyuPinyinOutputFormat format = new HanyuPinyinOutputFormat();

format.setCaseType(HanyuPinyinCaseType.LOWERCASE);

format.setToneType(HanyuPinyinToneType.WITHOUT_TONE);

format.setVCharType(HanyuPinyinVCharType.WITH_V);

for (char c : chars) {

if (c > 128) {

try {

String strs[] = PinyinHelper.toHanyuPinyinStringArray(c, format);

if ((strs != null) && (strs.length > 0)) {

sb.append(strs[0]);

} else {

sb.append(c);

}

} catch (BadHanyuPinyinOutputFormatCombination e) {

e.printStackTrace();

}

} else {

sb.append(c);

}

}

return sb.toString();

}

public static String convertNumberToHanzi(int i) {

if (i == 1) {

return "一";

}

if (i == 2) {

return "二";

}

if (i == 3) {

return "三";

}

if (i == 4) {

return "四";

}

if (i == 5) {

return "五";

}

if (i == 6) {

return "六";

}

if (i == 7) {

return "七";

}

if (i == 8) {

return "八";

}

if (i == 9) {

return "九";

}

if (i == 0) {

return "零";

}

return null;

}

public static String convertHanziToNumber(String str) {

if (str.contains("一")) {

str = str.replaceAll("一", "1");

}

if (str.contains("二")) {

str = str.replaceAll("二", "2");

}

if (str.contains("三")) {

str = str.replaceAll("三", "3");

}

if (str.contains("四")) {

str = str.replaceAll("四", "4");

}

if (str.contains("五")) {

str = str.replaceAll("五", "5");

}

if (str.contains("六")) {

str = str.replaceAll("六", "6");

}

if (str.contains("七")) {

str = str.replaceAll("七", "7");

}

if (str.contains("八")) {

str = str.replaceAll("八", "8");

}

if (str.contains("九")) {

str = str.replaceAll("九", "9");

}

if (str.contains("零")) {

str = str.replaceAll("零", "0");

}

return str;

}

/**

* 中文转unicode

*

* @param str

* @return

*/

public static String chinaToUnicode(String str) {

String result = "";

for (int i = 0; i < str.length(); i++) {

int chr1 = str.charAt(i);

if ((chr1 >= 19968) && (chr1 <= 171941)) {// 汉字范围 \u4e00-\u9fa5 (中文)

result += "\\u" + Integer.toHexString(chr1);

} else {

result += str.charAt(i);

}

}

return result;

}

}

本文同步分享在 博客“cwl_java”(CSDN)。

如有侵权,请联系 support@oschina.cn 删除。

本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一起分享。

转载地址:http://kmggp.baihongyu.com/

你可能感兴趣的文章
[Grunt] grunt.template
查看>>
Ubuntu最小化桌面快捷键Super+D不生效解决
查看>>
Cookie&Session会话跟踪技术
查看>>
UNIX环境高级编程 第17章 高级进程间通信
查看>>
ES的Zen发现机制
查看>>
【hibernate】1、Hibernate的一个注解 @Transient
查看>>
HihoCoder 1877 - Approximate Matching
查看>>
Elastic Search 语法总结
查看>>
py自动化之环境配置
查看>>
Winodws SNMP服务安装和配置(Windows 2003 & 2008 R2)
查看>>
红黑树-想说爱你不容易
查看>>
【题目】英文字符进行频率的统计,直方图输出
查看>>
LeetCode-Binary Tree Level Order Traversal
查看>>
COM组件开发实践
查看>>
yii2 源码分析1从入口开始
查看>>
浅谈网站推广
查看>>
Away3D基础之摄像机
查看>>
Leetcode 128. Longest Consecutive Sequence
查看>>
程序员必须知道的几个Git代码托管平台
查看>>
导电塑料入梦来
查看>>