利用Pinyin4j把中文转换为拼音

原文:利用Pinyin4j把中文转换为拼音

源代码下载地址:http://www.zuidaima.com/share/1550463764974592.htm

利用Pinyin4j把中文转换为拼音:

package com.zuidaima;
import net.sourceforge.pinyin4j.PinyinHelper;
import net.sourceforge.pinyin4j.format.HanyuPinyinOutputFormat;
import net.sourceforge.pinyin4j.format.HanyuPinyinToneType;
import net.sourceforge.pinyin4j.format.HanyuPinyinVCharType;
import net.sourceforge.pinyin4j.format.exception.BadHanyuPinyinOutputFormatCombination;
/**
 * 拼音辅助类
 * @author tanf www.zuidaima.com
 * @date 2013-10-10
 */
public class PinyinUtil {

	private static HanyuPinyinOutputFormat PINYIN_FORMAT;

	static {
		PINYIN_FORMAT = new HanyuPinyinOutputFormat();
		PINYIN_FORMAT.setToneType(HanyuPinyinToneType.WITHOUT_TONE);
		PINYIN_FORMAT.setVCharType(HanyuPinyinVCharType.WITH_V);
	}

	public static String toPinyin(String input) {
		StringBuilder sb = new StringBuilder();
		for (int i = 0; i < input.length(); i++) {
			char c = input.charAt(i);
			if (c <= 255) {
				sb.append(c);
			} else {
				String pinyin = null;
				try {
					String[] pinyinArray = PinyinHelper.toHanyuPinyinStringArray(c, PINYIN_FORMAT);
					pinyin = pinyinArray[0];
				} catch (BadHanyuPinyinOutputFormatCombination e) {
				} catch (NullPointerException e) {
					// 如果是日文,可能抛出该异常
				}
				if (pinyin != null) {
					sb.append(pinyin);
				}
			}
		}
		return sb.toString();
	}

	public static void main(String[] args) {

		String str = "张三";
		String result = toPinyin(str);

		System.out.println(result);
	}
}
时间: 2024-10-09 23:43:59

利用Pinyin4j把中文转换为拼音的相关文章

PHP如何将中文转换为拼音

用来得到中文的首字母: 这个是将中文转换为拼音的类:charset <?php/*** 汉字转化为拼音,拼音转化为汉字**/ class charset{private $_code=array(array("a",'-20319'),array("ai",'-20317'),array("an",'-20304'),array("ang",'-20295'),array("ao",'-20292')

在数据库中将中文转换为拼音或者汉字首字母 转

sql数据库自定义一个函数把下面代码写进去 功能是得到汉字拼音首字母 如下: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 create function fun_getPY(@str nvarchar(4000)) returns nvarchar(4000) as begin declare @word n

利用Excel宏中文转拼音方法

日常工作中有许多时候需要将大量的中文名字转换为拼音,让后录入作为账号.当需要录入数量多的情况下工作量会特别多,而且对于拼音不好人更是容易出错.这里我们将使用ASCII码的原理快捷的将中文转换为拼音. 打开Excel后使用快捷键alt+f8打开宏,或点击视图-宏 创建一个宏名字为getpy,点击创建 点击创建后将原有的模块语句清空,粘贴新脚本 粘贴脚本后保存 最后在表格里使用=getpy(str)格式的命令,转换指定格的文字为拼音 转换脚本 Function pinyin(p As String)

浅析pinyin4j源码 简单利用pinyin4j对中文字符进行自然排序

pinyin4j项目  官网地址 http://pinyin4j.sourceforge.net/ 我们先把资源下载下来,连同源码和jar包一起放入工程.如下图: 接下来在demo包下,我们写一个测试类,简单使用pinyin4j对中文字符进行自然排序 新建一个ConvertTest.java package demo; import java.util.ArrayList; import java.util.Collections; import java.util.Comparator; im

浅析pinyin4j源码 简单利用pinyin4j对中文字符进行自然排序(转)

pinyin4j项目  官网地址 http://pinyin4j.sourceforge.net/ 我们先把资源下载下来,连同源码和jar包一起放入工程.如下图: 接下来在demo包下,我们写一个测试类,简单使用pinyin4j对中文字符进行自然排序 新建一个ConvertTest.java package demo; import java.util.ArrayList; import java.util.Collections; import java.util.Comparator; im

java 中文转拼音之pinyin4j

一.简单介绍 有时候,需要将汉字编程对应的拼音,以方便数据的处理.比如在Android手机应用的开发上,要查询联系人的姓名,通常都是用拼音进行查询的. 比如要查询"曹孟德",就可以输入"cmd",即"曹孟德"三个汉字的拼音"caomengde"各字的首字母.但是怎样才能将"曹孟德"翻译成"caomengde"呢? 很简单的办法就是建立一个大的对照表(比如用关联容器Map),比如<&

通过pinyin4j将汉字转换为全拼 和 拼音首字母

/** * 汉字转换为拼音 包含多音字,包含生母zh,ch,sh的 */ public void toPinYinAll(){ String initials = "zh,ch,sh"; //返回汉语拼音的全拼 List<String> result = new ArrayList<String>(); //返回汉语拼音的单拼 List<String> firstResult = new ArrayList<String>(); resu

中文转换为完整拼音算法原理分析

最近由于项目需要,对简体中文转拼音的算法作了一些了解,然而在google找到的大多是获得简体中文拼音首字母的算法,好不容易让我找到了一个sunrise.spell的类,专门用于中文转完整拼音,觉得的确做得不错,于是对它的算法作了一些分析,总的来说觉得还是比较简单的,拿出来与大家分享. 我们先来学习一些准备知识.GB2312编码对于我们中国人是再熟悉不过了,我先简单的分析一下它的编码规则.GB2312编码包括符号.数字.字母.日文.制表符等,当然最主要的部分还是中文,它采用16位编码方式,简体中文

中文转拼音

项目开发中,有时会遇到,要将中文转英文拼音的情况,如中文名转英文名...,特做此记录备用 1. 导包 <!-- https://mvnrepository.com/artifact/com.belerweb/pinyin4j --> <dependency> <groupId>com.belerweb</groupId> <artifactId>pinyin4j</artifactId> <version>2.5.0<