pom.xml导入pinyin4j的依赖

com.belerweb

pinyin4j

2.5.1

汉字转拼音工具类package com.bizcloud.function;

import net.sourceforge.pinyin4j.PinyinHelper;

import net.sourceforge.pinyin4j.format.HanyuPinyinOutputFormat;

import net.sourceforge.pinyin4j.format.HanyuPinyinToneType;

import java.util.regex.Matcher;

import java.util.regex.Pattern;

/**

* @java 项目 www.fhadmin.org

* @version 1.0

* @since 2020/12/23 6:29 下午

*/

public class ChineseCharacterUtils {

/**

* 将单个汉字转成拼音

*

* @param chinese 汉字字符

* @return 拼音

*/

public static String chineseCharConversionPinyin(char chinese) {

HanyuPinyinOutputFormat outputFormat = new HanyuPinyinOutputFormat();

outputFormat.setToneType(HanyuPinyinToneType.WITHOUT_TONE);

String[] res;

StringBuilder stringBuilder = new StringBuilder();

try {

res = PinyinHelper.toHanyuPinyinStringArray(chinese, outputFormat);

//对于多音字,只用第一个拼音

stringBuilder.append(res[0]);

} catch (Exception e) {

e.printStackTrace();

return "";

}

return stringBuilder.toString();

}

/**

* 将汉字转成拼音,取首字母或全拼

*

* @param chinese 汉字字符串

* @param isFull  是否全拼

* @return 拼音

*/

public static String chineseConversionPinyin(String chinese, boolean isFull) {

// ^[\u2E80-\u9FFF]+$ 匹配所有东亚区的语言

// ^[\u4E00-\u9FFF]+$ 匹配简体和繁体

// ^[\u4E00-\u9FA5]+$ 匹配简体

String regExp = "^[\u4E00-\u9FFF]+$";

StringBuilder stringBuilder = new StringBuilder();

if (chinese == null || "".equals(chinese.trim())) {

return "";

}

String pinyin = "";

for (int i = 0; i

char unit = chinese.charAt(i);

//是汉字,则转拼音

if (match(String.valueOf(unit), regExp)) {

pinyin = chineseCharConversionPinyin(unit);

if (isFull) {

stringBuilder.append(pinyin);

} else {

stringBuilder.append(pinyin.charAt(0));

}

} else {

stringBuilder.append(unit);

}

}

return stringBuilder.toString();

}

/**

* 根据字符和正则表达式进行匹配

*

* @param str   源字符串

* @param regex 正则表达式

* @return true:匹配成功  false:匹配失败

*/

private static boolean match(String str, String regex) {

Pattern pattern = Pattern.compile(regex);

Matcher matcher = pattern.matcher(str);

return matcher.find();

}

public static void main(String[] args) {

char sex = '男';

String chineseCharConversionPinyin = chineseCharConversionPinyin(sex);

//nan

System.out.println(chineseCharConversionPinyin);

String str = "你好,中国";

String chineseConversionPinyin = chineseConversionPinyin(str, false);

//nh,zg或者nihao,zhongguo

System.out.println(chineseConversionPinyin);

}

}

java 根据拼音查询汉字_Java 根据汉字获取其拼音相关推荐

  1. java操作mongodb查询总数_java操作mongodb——查询数据

    field为查询字段,value为查询值,也可以通过过滤器Filters,Filters提供了一系列查询条件的静态方法 相等 - = FindIterable iter = doc.find(new ...

  2. java 中文转首字母_Java 将汉字转换为拼音并取首字母大写

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 首先需要引入pinyin4j-2.5.0.jar 在定义一个servlet.Java的类,写一个Converting方法 实例代码详解如下: public ...

  3. python获取汉字拼音查询翻译器_Python 返回汉字的汉语拼音

    后来想到自己Delphi有一个获得拼音的代码.于是找了出来.研究了一下代码如下: 复制代码 代码如下: function get_hz_pywb(hzstr: string; pytype: inte ...

  4. java 16进制与汉字_java实现汉字转unicode与汉字转16进制实例

    本文实例讲述了java实现汉字转unicode与汉字转16进制的实现方法.分享给大家供大家参考.具体实现方法如下: 一.汉字转unicode public static string tounicod ...

  5. java 分词器耗时 性能_java 支持分词的高性能拼音转换工具,速度是 pinyin4j 的两倍...

    pinyin pinyin 是 java 实现的高性能中文拼音转换工具. 创作目的 想为 java 设计一款便捷易用的拼音工具. 特性 极简的 api 设计 支持转换长文本 支持多音字 支持多种拼音标 ...

  6. java hbase 批量查询数据_java Hbase 批量读取

    Hbase 一般使用传一个rowkey读取一个数据的方式进行数据的读取,然后将多个rowkey写成一个循环,这样性能不好.可以传一批rowkey然后,一块获取返回数据的方式进行查询. java 版本: ...

  7. java中sql查询语句_JAVA中用 SQL语句操作小结

    1.添加记录(INSERT) 使用SQL语句的INSERT命令可以向数据库中插入记录,INSERT命令的基本形式为: INSERT INTO 表名 [(字段名1,字段名2-)] VALUES (值1, ...

  8. java mvc 分页查询条件_java分页条件查询-GridManager.js表格插件+Pageable分页对象+mybatis pagehelper分页插件...

    总览: 一. GridManager.js表格插件 直接上插件API:链接地址 感觉该插件简单好用,插件作者也是有问必答,nice 二. 添加依赖 后端: pom文件添加: 1.7.0.RELEASE ...

  9. java ip地址查询接口_java获取ip地址与网络接口的方法示例

    java获取ip地址与网络接口的方法示例 发布时间:2020-09-20 23:57:52 来源:脚本之家 阅读:66 作者:骏马金龙 java.net包 大家应该都知道,网络相关对象在java.ne ...

  10. java mysql 异步查询数据库_java 异步操作数据库

    @Autowired private ThreadPoolTaskExecutor threadPoolTaskExecutor; threadPoolTaskExecutor.execute(new ...

最新文章

  1. flexnet licensing 启动多个服务_又小又灵巧,浪潮边缘计算服务器获深度评测高分...
  2. 使用postman修改SAP Marketing Cloud contact主数据
  3. pytorch .item_pytorch + SGD
  4. 【每日一题】剑指 Offer 10- I. 斐波那契数列
  5. 深度学习平台你知道多少?
  6. python3获得命令行输入的参数
  7. 阿里巴巴Java开发规约插件p3c
  8. P5180-[模板]支配树
  9. 用递归法求1²+2²+...+n²的值
  10. php date hi,php中时间戳和日期格式的转换
  11. 从中煤陕西公司看政企移动信息化应用
  12. 用Gradle 构建你的android程序
  13. 网络工程师的机会在哪里
  14. java thrift 教程_RPC学习----Thrift快速入门和Java简单示例
  15. oracle txn,Oracle 11gR2上遇到blocking txn id for DDL等待事件,11gr2txn
  16. 战神遗迹服务器未响应怎么回事,战神遗迹黑屏闪退怎么处理
  17. Mysql日期的加减法_mysql日期加减
  18. 利用神经网络识别窃电用户
  19. 北大软微计算机应用基础真题,北京大学软微考研参考书、考研真题及复习经验...
  20. ESP8266+SH1106 OLED屏实现天气预报+温度显示+NTP时间同步6屏带中文显示V7.5版

热门文章

  1. pr基本剪辑操作/视频导出操作
  2. 机器人电焊电流电压怎么调_焊电焊电流怎么调节,调多少合适?
  3. 查看WIN10密钥备忘
  4. 一句话理解到底什么是电平触发器,脉冲触发器,同步触发器,边沿触发器
  5. 谷歌浏览器实现按下按键的脚本_谷歌浏览器快捷键设置方法详解
  6. HBuilderX连接安卓模拟器
  7. MySQL_where条件查询
  8. 女神:今天我3倍工资,放假半天 有法可依,我...
  9. 卡方检验四格表怎么做_运用SPSS进行医学诊断数据的Kappa一致性检验 ——【杏花开医学统计】...
  10. 8 - 博客文章详情页