Java将中文转化为拼音的简单代码示例

Java中可以使用第三方库pinyin4j来实现中文转拼音。
首先,需要引入pinyin4j的jar包,可以在pinyin4j的官方网站(http://pinyin4j.sourceforge.net/)下载,也可以通过Maven引入。
Maven引入依赖:
<dependency>
<groupId>com.belerweb</groupId>
<artifactId>pinyin4j</artifactId>
<version>2.5.1</version>
</dependency>以下是一个简单的示例代码,可以将中文字符串转换为拼音:
import net.sourceforge.pinyin4j.PinyinHelper;
public class ChineseToPinyin {
public static void main(String[] args) {
String chinese = "你好,世界!";
String pinyin = convertToPinyin(chinese);
System.out.println(pinyin);
}
public static String convertToPinyin(String chinese) {
StringBuilder pinyin = new StringBuilder();
char[] chars = chinese.toCharArray();
for (char c : chars) {
String[] pinyinArray = PinyinHelper.toHanyuPinyinStringArray(c);
if (pinyinArray != null) {
pinyin.append(pinyinArray[0]);
} else {
pinyin.append(c);
}
}
return pinyin.toString();
}
}
执行以上代码,输出结果为:ni3hao3,shi4jie4!
其中拼音后面的数字代表声调,3代表第三声
那么如果我们不需要声调,如何实现呢?其实目前已经支持了,代码如下:
public static void main(String[] args) {
String input = "你好,世界!";
// 设置不带声调的输出选项
net.sourceforge.pinyin4j.format.HanyuPinyinOutputFormat format = new net.sourceforge.pinyin4j.format.HanyuPinyinOutputFormat();
format.setToneType(net.sourceforge.pinyin4j.format.HanyuPinyinToneType.WITHOUT_TONE);
StringBuilder output = new StringBuilder();
for (char c : input.toCharArray()) {
try {
String[] pinyinArray = PinyinHelper.toHanyuPinyinStringArray(c, format);
if (pinyinArray != null && pinyinArray.length > 0) {
output.append(pinyinArray[0]).append(" ");
} else {
output.append(c).append(" ");
}
} catch (Exception e) {
output.append(c).append(" ");
}
}
System.out.println(output.toString().trim()); // 输出结果:pin yin 4j
}此时执行效果如下:ni hao , shi jie !
总结
到此这篇关于Java将中文转化为拼音的文章就介绍到这了,更多相关Java中文转化为拼音内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
相关文章
SpringBoot整合jasypt进行重要数据加密的操作代码
Jasypt(Java Simplified Encryption)是一个专注于简化Java加密操作的开源工具,它提供了一种简单而强大的方式来处理数据的加密和解密,使开发者能够轻松地保护应用程序中的敏感信息,本文给大家介绍了SpringBoot整合jasypt进行重要数据加密,需要的朋友可以参考下2024-05-05
spring mvc DispatcherServlet之前端控制器架构详解
这篇文章主要为大家详细介绍了spring mvc DispatcherServlet之前端控制器架构,具有一定的参考价值,感兴趣的小伙伴们可以参考一下2018-04-04
Spring Data JPA中的Specification动态查询详解
Specification是一个设计模式,用于企业级应用开发中,其主要目的是将业务规则从业务逻辑中分离出来,在数据查询方面,Specification可以定义复杂的查询,使其更易于重用和测试,这篇文章主要介绍了Spring Data JPA中的Specification动态查询详解,需要的朋友可以参考下2023-07-07
SpringBoot的@GetMapping路径匹配规则、国际化详细教程
这篇文章主要介绍了SpringBoot的@GetMapping路径匹配规则、国际化,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧2023-11-11
spring定时任务执行两次及tomcat部署缓慢问题的解决方法
这篇文章主要给大家介绍了关于spring定时任务执行两次及tomcat部署缓慢问题的解决方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面小编来一起学习学习吧。2018-01-01
Java深入分析Iterator迭代器与foreach循环的使用
这篇文章主要介绍了Java-Iterator迭代器与foreach循环,主要包括Iterator迭代器接口的操作方法和foreach 循环语法解析,需要的朋友可以参考下2022-05-05


最新评论