热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Java中文转拼音、汉字转拼音

需要jar包[XML] 纯文本查看 复制代码?12345    com.belerweb    

需要jar包

[XML] 纯文本查看 

?










1

2

3

4

5


<dependency>

    <groupId>com.belerwebgroupId>

    <artifactId>pinyin4jartifactId>

    <version>2.5.1version>

dependency>




第一个 : 汉字转拼音全拼不忽略英文字符

[Java] 纯文本查看 

?










01

02

03

04

05

06

07

08

09

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24


/**

 * (全拼)中文转拼音 --->不忽略英文字符

 * @param chinese

 * @return

 */

public static String getFullSpell(String chinese) {

    StringBuffer pybf = new StringBuffer();

    char[] arr = chinese.toCharArray();

    HanyuPinyinOutputFormat defaultFormat = new HanyuPinyinOutputFormat();

    defaultFormat.setCaseType(HanyuPinyinCaseType.LOWERCASE);

    defaultFormat.setToneType(HanyuPinyinToneType.WITHOUT_TONE);

    for (int i = 0; i

        if (arr[i] > 128) {

            try {

                pybf.append(PinyinHelper.toHanyuPinyinStringArray(arr[i], defaultFormat)[0]);

            } catch (BadHanyuPinyinOutputFormatCombination e) {

                e.printStackTrace();

            }

        } else {

            pybf.append(arr[i]);

        }

    }

    return pybf.toString();

}




第二个 : 汉字转拼音首字母不忽略英文字符

[Java] 纯文本查看 

?










01

02

03

04

05

06

07

08

09

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27


/**

 * (首字母)汉字转拼音--->不忽略英文字符

 * @param chinese

 * @return

 */

public static String getFirstSpell(String chinese) {

    StringBuffer pybf = new StringBuffer();

    char[] arr = chinese.toCharArray();

    HanyuPinyinOutputFormat defaultFormat = new HanyuPinyinOutputFormat();

    defaultFormat.setCaseType(HanyuPinyinCaseType.LOWERCASE);

    defaultFormat.setToneType(HanyuPinyinToneType.WITHOUT_TONE);

    for (int i = 0; i

        if (arr[i] > 128) {

            try {

                String[] temp = PinyinHelper.toHanyuPinyinStringArray(arr[i], defaultFormat);

                if (temp != null) {

                    pybf.append(temp[0].charAt(0));

                }

            } catch (BadHanyuPinyinOutputFormatCombination e) {

                e.printStackTrace();

            }

        } else {

            pybf.append(arr[i]);

        }

    }

    return pybf.toString().replaceAll("\\W", "").trim();

}




第三个 : 汉字转拼音全拼忽略英文字符

[Java] 纯文本查看 

?










01

02

03

04

05

06

07

08

09

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25


/**

 * (全拼)中文转拼音自动--->忽略英文字符

 * @param inputString

 * @return

 */

public static String getFullSpell_WithoutEnglish(String inputString) {

    HanyuPinyinOutputFormat format = new HanyuPinyinOutputFormat();

    format.setCaseType(HanyuPinyinCaseType.LOWERCASE);

    format.setToneType(HanyuPinyinToneType.WITHOUT_TONE);

    format.setVCharType(HanyuPinyinVCharType.WITH_V);

    char[] input = inputString.trim().toCharArray();

    String output = "";

    try {

        for (int i = 0; i

            System.err.println(input[i]);

            if (java.lang.Character.toString(input[i]).matches("[\\u4E00-\\u9FA5]+")) {

                String[] temp = PinyinHelper.toHanyuPinyinStringArray(input[i], format);

                output += temp[0];

            }

        }

    } catch (BadHanyuPinyinOutputFormatCombination e) {

        e.printStackTrace();

    }

    return output;

}




第四个 : 汉字转拼音首字母忽略英文字符

[Java] 纯文本查看 

?










01

02

03

04

05

06

07

08

09

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25


/**

 * (首字母)汉字转拼音--->忽略英文字符

 * @param chinese

 * @return

 */

public static String getFirstSpell_WithoutEnglish(String chinese) {

    StringBuffer pybf = new StringBuffer();

    char[] arr = chinese.toCharArray();

    HanyuPinyinOutputFormat defaultFormat = new HanyuPinyinOutputFormat();

    defaultFormat.setCaseType(HanyuPinyinCaseType.LOWERCASE);

    defaultFormat.setToneType(HanyuPinyinToneType.WITHOUT_TONE);

    for (int i = 0; i

        if (arr[i] > 128) {

            try {

                String[] temp = PinyinHelper.toHanyuPinyinStringArray(arr[i], defaultFormat);

                if (temp != null) {

                    pybf.append(temp[0].charAt(0));

                }

            } catch (BadHanyuPinyinOutputFormatCombination e) {

                e.printStackTrace();

            }

        }

    }

    return pybf.toString().replaceAll("\\W", "").trim();

}




推荐阅读
  • 采用IKE方式建立IPsec安全隧道
    一、【组网和实验环境】按如上的接口ip先作配置,再作ipsec的相关配置,配置文本见文章最后本文实验采用的交换机是H3C模拟器,下载地址如 ... [详细]
  • 深入解析Java枚举及其高级特性
    本文详细介绍了Java枚举的概念、语法、使用规则和应用场景,并探讨了其在实际编程中的高级应用。所有相关内容已收录于GitHub仓库[JavaLearningmanual](https://github.com/Ziphtracks/JavaLearningmanual),欢迎Star并持续关注。 ... [详细]
  • 实用正则表达式有哪些
    小编给大家分享一下实用正则表达式有哪些,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下 ... [详细]
  • 本文介绍如何从字符串中移除大写、小写、特殊、数字和非数字字符,并提供了多种编程语言的实现示例。 ... [详细]
  • 深入解析SpringMVC核心组件:DispatcherServlet的工作原理
    本文详细探讨了SpringMVC的核心组件——DispatcherServlet的运作机制,旨在帮助有一定Java和Spring基础的开发人员理解HTTP请求是如何被映射到Controller并执行的。文章将解答以下问题:1. HTTP请求如何映射到Controller;2. Controller是如何被执行的。 ... [详细]
  • 在高并发需求的C++项目中,我们最初选择了JsonCpp进行JSON解析和序列化。然而,在处理大数据量时,JsonCpp频繁抛出异常,尤其是在多线程环境下问题更为突出。通过分析发现,旧版本的JsonCpp存在多线程安全性和性能瓶颈。经过评估,我们最终选择了RapidJSON作为替代方案,并实现了显著的性能提升。 ... [详细]
  • 本文介绍如何使用MFC和ADO技术调用SQL Server中的存储过程,以查询指定小区在特定时间段内的通话统计数据。通过用户界面选择小区ID、开始时间和结束时间,系统将计算并展示小时级的通话量、拥塞率及半速率通话比例。 ... [详细]
  • 目录一、salt-job管理#job存放数据目录#缓存时间设置#Others二、returns模块配置job数据入库#配置returns返回值信息#mysql安全设置#创建模块相关 ... [详细]
  • 1.介绍有时候我们需要一些模拟数据来进行测试,今天简单记录下如何用存储过程生成一些随机数据。2.建表我们新建一张学生表和教师表如下:CREATETABLEstudent(idINT ... [详细]
  • Linux环境下C语言实现定时向文件写入当前时间
    本文介绍如何在Linux系统中使用C语言编程,实现在每秒钟向指定文件中写入当前时间戳。通过此示例,读者可以了解基本的文件操作、时间处理以及循环控制。 ... [详细]
  • 本文将探讨2015年RCTF竞赛中的一道PWN题目——shaxian,重点分析其利用Fastbin和堆溢出的技巧。通过详细解析代码流程和漏洞利用过程,帮助读者理解此类题目的破解方法。 ... [详细]
  • 在尝试使用C# Windows Forms客户端通过SignalR连接到ASP.NET服务器时,遇到了内部服务器错误(500)。本文将详细探讨问题的原因及解决方案。 ... [详细]
  • MySQL 基础操作与优化
    本文详细介绍了 MySQL 的基础连接、数据库及表的操作,涵盖创建、修改、删除等常用命令,并深入解析了数据类型、列属性、索引、外键和存储引擎等内容。 ... [详细]
  • 本文介绍如何在MySQL中创建一个自定义函数,用于将包含多个班级编号的字符串拆分为对应的班级名称。通过详细解释代码逻辑和功能,帮助读者理解并应用这一技术。 ... [详细]
  • 本文详细介绍了 Python 中的条件语句和循环结构。主要内容包括:1. 分支语句(if...elif...else);2. 循环语句(for, while 及嵌套循环);3. 控制循环的语句(break, continue, else)。通过具体示例,帮助读者更好地理解和应用这些语句。 ... [详细]
author-avatar
灵11135_748_744_769
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有