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

 更新时间:2024年03月01日 08:26:51   作者:小筱在线  
在我们使用手机通讯录或各种APP的搜索功能时,既可以根据中文搜索,也可以根据拼音搜索,这种时候就使用到了中文转拼音的功能了,下面这篇文章主要给大家介绍了关于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进行重要数据加密的操作代码

    SpringBoot整合jasypt进行重要数据加密的操作代码

    Jasypt(Java Simplified Encryption)是一个专注于简化Java加密操作的开源工具,它提供了一种简单而强大的方式来处理数据的加密和解密,使开发者能够轻松地保护应用程序中的敏感信息,本文给大家介绍了SpringBoot整合jasypt进行重要数据加密,需要的朋友可以参考下
    2024-05-05
  • spring mvc DispatcherServlet之前端控制器架构详解

    spring mvc DispatcherServlet之前端控制器架构详解

    这篇文章主要为大家详细介绍了spring mvc DispatcherServlet之前端控制器架构,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-04-04
  • 彻底解决Spring MVC中文乱码问题的方案

    彻底解决Spring MVC中文乱码问题的方案

    这篇文章主要介绍了彻底解决Spring MVC中文乱码问题的方案,具有一定的参考价值,感兴趣的小伙伴们可以参考一下。
    2016-11-11
  • Spring Data JPA中的Specification动态查询详解

    Spring Data JPA中的Specification动态查询详解

    Specification是一个设计模式,用于企业级应用开发中,其主要目的是将业务规则从业务逻辑中分离出来,在数据查询方面,Specification可以定义复杂的查询,使其更易于重用和测试,这篇文章主要介绍了Spring Data JPA中的Specification动态查询详解,需要的朋友可以参考下
    2023-07-07
  • Java报错状态码快速定位与解决方法

    Java报错状态码快速定位与解决方法

    在日常开发中Java程序员最头疼的问题之一就是遇到各种报错状态码,这些状态码就像谜语一样让人摸不着头脑,比如突然蹦出一个500或者404,新手可能会直接懵掉,别担心!这篇文章会带你彻底搞懂Java报错状态码的来龙去脉,需要的朋友可以参考下
    2025-05-05
  • SpringBoot的@GetMapping路径匹配规则、国际化详细教程

    SpringBoot的@GetMapping路径匹配规则、国际化详细教程

    这篇文章主要介绍了SpringBoot的@GetMapping路径匹配规则、国际化,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧
    2023-11-11
  • spring定时任务执行两次及tomcat部署缓慢问题的解决方法

    spring定时任务执行两次及tomcat部署缓慢问题的解决方法

    这篇文章主要给大家介绍了关于spring定时任务执行两次及tomcat部署缓慢问题的解决方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面小编来一起学习学习吧。
    2018-01-01
  • Java深入分析Iterator迭代器与foreach循环的使用

    Java深入分析Iterator迭代器与foreach循环的使用

    这篇文章主要介绍了Java-Iterator迭代器与foreach循环,主要包括Iterator迭代器接口的操作方法和foreach 循环语法解析,需要的朋友可以参考下
    2022-05-05
  • java 压缩图片(只缩小体积,不更改图片尺寸)的示例

    java 压缩图片(只缩小体积,不更改图片尺寸)的示例

    这篇文章主要介绍了java 如何压缩图片体积,帮助大家更好的利用Java处理图片,应对特殊情况,感兴趣的朋友可以了解下
    2020-10-10
  • Java批量写入文件和下载图片的示例代码

    Java批量写入文件和下载图片的示例代码

    这篇文章主要介绍了Java批量写入文件和下载图片的示例代码,帮助大家更好的理解和使用Java,感兴趣的朋友可以了解下
    2020-09-09

最新评论