java 根据拼音查询汉字_Java 根据汉字获取其拼音
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 根据汉字获取其拼音相关推荐
- java操作mongodb查询总数_java操作mongodb——查询数据
field为查询字段,value为查询值,也可以通过过滤器Filters,Filters提供了一系列查询条件的静态方法 相等 - = FindIterable iter = doc.find(new ...
- java 中文转首字母_Java 将汉字转换为拼音并取首字母大写
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 首先需要引入pinyin4j-2.5.0.jar 在定义一个servlet.Java的类,写一个Converting方法 实例代码详解如下: public ...
- python获取汉字拼音查询翻译器_Python 返回汉字的汉语拼音
后来想到自己Delphi有一个获得拼音的代码.于是找了出来.研究了一下代码如下: 复制代码 代码如下: function get_hz_pywb(hzstr: string; pytype: inte ...
- java 16进制与汉字_java实现汉字转unicode与汉字转16进制实例
本文实例讲述了java实现汉字转unicode与汉字转16进制的实现方法.分享给大家供大家参考.具体实现方法如下: 一.汉字转unicode public static string tounicod ...
- java 分词器耗时 性能_java 支持分词的高性能拼音转换工具,速度是 pinyin4j 的两倍...
pinyin pinyin 是 java 实现的高性能中文拼音转换工具. 创作目的 想为 java 设计一款便捷易用的拼音工具. 特性 极简的 api 设计 支持转换长文本 支持多音字 支持多种拼音标 ...
- java hbase 批量查询数据_java Hbase 批量读取
Hbase 一般使用传一个rowkey读取一个数据的方式进行数据的读取,然后将多个rowkey写成一个循环,这样性能不好.可以传一批rowkey然后,一块获取返回数据的方式进行查询. java 版本: ...
- java中sql查询语句_JAVA中用 SQL语句操作小结
1.添加记录(INSERT) 使用SQL语句的INSERT命令可以向数据库中插入记录,INSERT命令的基本形式为: INSERT INTO 表名 [(字段名1,字段名2-)] VALUES (值1, ...
- java mvc 分页查询条件_java分页条件查询-GridManager.js表格插件+Pageable分页对象+mybatis pagehelper分页插件...
总览: 一. GridManager.js表格插件 直接上插件API:链接地址 感觉该插件简单好用,插件作者也是有问必答,nice 二. 添加依赖 后端: pom文件添加: 1.7.0.RELEASE ...
- java ip地址查询接口_java获取ip地址与网络接口的方法示例
java获取ip地址与网络接口的方法示例 发布时间:2020-09-20 23:57:52 来源:脚本之家 阅读:66 作者:骏马金龙 java.net包 大家应该都知道,网络相关对象在java.ne ...
- java mysql 异步查询数据库_java 异步操作数据库
@Autowired private ThreadPoolTaskExecutor threadPoolTaskExecutor; threadPoolTaskExecutor.execute(new ...
最新文章
- flexnet licensing 启动多个服务_又小又灵巧,浪潮边缘计算服务器获深度评测高分...
- 使用postman修改SAP Marketing Cloud contact主数据
- pytorch .item_pytorch + SGD
- 【每日一题】剑指 Offer 10- I. 斐波那契数列
- 深度学习平台你知道多少?
- python3获得命令行输入的参数
- 阿里巴巴Java开发规约插件p3c
- P5180-[模板]支配树
- 用递归法求1²+2²+...+n²的值
- php date hi,php中时间戳和日期格式的转换
- 从中煤陕西公司看政企移动信息化应用
- 用Gradle 构建你的android程序
- 网络工程师的机会在哪里
- java thrift 教程_RPC学习----Thrift快速入门和Java简单示例
- oracle txn,Oracle 11gR2上遇到blocking txn id for DDL等待事件,11gr2txn
- 战神遗迹服务器未响应怎么回事,战神遗迹黑屏闪退怎么处理
- Mysql日期的加减法_mysql日期加减
- 利用神经网络识别窃电用户
- 北大软微计算机应用基础真题,北京大学软微考研参考书、考研真题及复习经验...
- ESP8266+SH1106 OLED屏实现天气预报+温度显示+NTP时间同步6屏带中文显示V7.5版
热门文章
- pr基本剪辑操作/视频导出操作
- 机器人电焊电流电压怎么调_焊电焊电流怎么调节,调多少合适?
- 查看WIN10密钥备忘
- 一句话理解到底什么是电平触发器,脉冲触发器,同步触发器,边沿触发器
- 谷歌浏览器实现按下按键的脚本_谷歌浏览器快捷键设置方法详解
- HBuilderX连接安卓模拟器
- MySQL_where条件查询
- 女神:今天我3倍工资,放假半天 有法可依,我...
- 卡方检验四格表怎么做_运用SPSS进行医学诊断数据的Kappa一致性检验 ——【杏花开医学统计】...
- 8 - 博客文章详情页