Java汉字转拼音pinyin4j

package com.joyce.pinyin4j;
import net.sourceforge.pinyin4j.PinyinHelper;
import net.sourceforge.pinyin4j.format.HanyuPinyinCaseType;
import net.sourceforge.pinyin4j.format.HanyuPinyinOutputFormat;
import net.sourceforge.pinyin4j.format.HanyuPinyinToneType;
import net.sourceforge.pinyin4j.format.HanyuPinyinVCharType;
/**
 * PinYin4j
 * @author Joyce.Luo
 * @date 2015-5-14 下午01:04:38
 * @version V3.0
 * @since Tomcat6.0,Jdk1.6
 * @copyright Copyright (c) 2015
 */
public class PinyinUtil {
	public static void main(String[] args) {
		String str1 = PinyinUtil.toPinyinString(‘张‘);
		System.out.println("chinese char --> " + str1);
		String str2 = PinyinUtil.toPinyinString(‘c‘);
		System.out.println("english char --> " + str2);
		String str3 = PinyinUtil.toPinyinString("张三");
		System.out.println("chinese string --> " + str3);
		String str4 = PinyinUtil.toPinyinString("Hello World");
		System.out.println("english string --> " + str4);
		String str5 = PinyinUtil.toPinyinString("Hi 张三,hello world!");
		System.out.println("chinese and english --> " + str5);
	}

	/**
	 * 获取Pinyin输出格式
	 * @return Pinyin输出格式
	 * @author Joyce.Luo
	 * @date 2015-5-14 下午01:40:10
	 * @version V3.0
	 * @since Tomcat6.0,Jdk1.6
	 * @copyright Copyright (c) 2015
	 */
	private static HanyuPinyinOutputFormat getPinyinFormat(){
		HanyuPinyinOutputFormat format = new HanyuPinyinOutputFormat();
		/*
		 * UPPERCASE:大写 (ZHONG)
		 * LOWERCASE:小写 (zhong)
		 */
		format.setCaseType(HanyuPinyinCaseType.LOWERCASE);
		/*
		 * WITHOUT_TONE:无音标 (zhong)
		 * WITH_TONE_NUMBER:1-4数字表示英标 (zhong4)
		 * WITH_TONE_MARK:直接用音标符(必须WITH_U_UNICODE否则异常) (zhòng)
		 */
		format.setToneType(HanyuPinyinToneType.WITHOUT_TONE);
		/*
		 * WITH_V:用v表示ü (nv)
		 * WITH_U_AND_COLON:用"u:"表示ü (nu:)
		 * WITH_U_UNICODE:直接用ü (nü)
		 */
		format.setVCharType(HanyuPinyinVCharType.WITH_U_UNICODE);

		// 返回输出格式
		return format;
	}

	/**
	 * 将字符转换为Pinyin
	 * 若为英文字符,则直接输出
	 * 若字符为多音字,则取第一个
	 * @param c 待转换字符
	 * @return 转换后字符串
	 * @author Joyce.Luo
	 * @date 2015-5-14 下午01:34:55
	 * @version V3.0
	 * @since Tomcat6.0,Jdk1.6
	 * @copyright Copyright (c) 2015
	 */
	public static String toPinyinString(char c) {
		HanyuPinyinOutputFormat format = PinyinUtil.getPinyinFormat();
		try {
			String[] pinyin = PinyinHelper.toHanyuPinyinStringArray(c, format);
			if (null == pinyin || pinyin.length < 1) {
				return String.valueOf(c);
			}
			return pinyin[0];
		} catch (Exception e) {
			e.printStackTrace();
			return null;
		}
	}

	/**
	 * 字符串转换为Pinyin
	 * @param str 待转换字符串
	 * @return 转换后字符串
	 * @author Joyce.Luo
	 * @date 2015-5-14 下午01:38:17
	 * @version V3.0
	 * @since Tomcat6.0,Jdk1.6
	 * @copyright Copyright (c) 2015
	 */
	public static String toPinyinString(String str){
		if (null == str || "".equals(str)) {
			return null;
		}
		StringBuilder sb = new StringBuilder();
		String tempPinyin = null;
		for (int i = 0; i < str.length(); i++) {
			tempPinyin = PinyinUtil.toPinyinString(str.charAt(i));
			sb.append(tempPinyin);
		}
		return sb.toString();
	}
}

时间: 2024-08-01 21:41:08

Java汉字转拼音pinyin4j的相关文章

Java汉字转拼音库,Pinyin4j

pinyin4j是一个支持将简体和繁体中文转换到成拼音的Java开源类库,作者是Li Min ([email protected]).以下是一些具体的介绍和使用方式.         1.pinyin4j的官方下载地址http://sourceforge.net/projects/pinyin4j/files/ 2.下载解压后的目录结构及说明如下 (1)    doc : pinyin4j的api文档 (2)    lib : pinyin4j的jar包 (3)    src : pinyin4

java汉字转拼音以及得到首字母通用方法

1. [代码]PingYinUtil    package oa.common.utils; import net.sourceforge.pinyin4j.PinyinHelper;import net.sourceforge.pinyin4j.format.HanyuPinyinCaseType;import net.sourceforge.pinyin4j.format.HanyuPinyinOutputFormat;import net.sourceforge.pinyin4j.form

java汉字转换为拼音

原文:java汉字转换为拼音 代码下载地址:http://www.zuidaima.com/share/1550463275240448.htm 输入的字符串是:"这是一个中文" 运行结果: 标签: java 汉字 拼音 转化话题: 语言基础 脚本和工具

[转]Java汉字按照拼音排序

最近项目上使用到汉字排序的问题,网上搜索了一下后普遍使用下面的方法比较. @Test public void test_sort_pinyin() { Collator cmp = Collator.getInstance(java.util.Locale.CHINA); String[] arr = { "张三", "李四", "王五", "赵六", "JAVA", "123", &q

java汉字转拼音工具类

添加依赖 <dependency> <groupId>com.belerweb</groupId> <artifactId>pinyin4j</artifactId> <version>2.5.1</version> </dependency> 工具类代码: public class PinYinUtils { public static HanyuPinyinOutputFormat PINYIN_FORMA

字符串 汉字转拼音 pinyin4j

介绍 maven地址:http://mvnrepository.com/artifact/com.belerweb/pinyin4j/2.5.0 文档:file:///C:/Users/baiqi/Desktop/doc/index.html GitHub上的一个封装:https://github.com/belerweb/pinyin4j pinyin4J 是一个可以将汉字转换成拼音的lib,非常实用,其提供的 PinyinHelper 这个静态类对外提供拼音转换的服务,主要用到以下两个方法:

java 汉字转拼音

package com.hxkr.util; import net.sourceforge.pinyin4j.PinyinHelper; import net.sourceforge.pinyin4j.format.HanyuPinyinCaseType; import net.sourceforge.pinyin4j.format.HanyuPinyinOutputFormat; import net.sourceforge.pinyin4j.format.HanyuPinyinToneTyp

JAVA汉字转拼音

首先先要导入pinyin4j-2.5.0.jar 这个jar包 /** * 得到 全拼 * * @param src * @return */ public static String getPingYin(String src) { char[] t1 = null; t1 = src.toCharArray(); String[] t2 = new String[t1.length]; HanyuPinyinOutputFormat t3 = new HanyuPinyinOutputFor

用jpinyin实现汉字转拼音功能

一.简介 项目地址:https://github.com/stuxuhai/jpinyin JPinyin是一个汉字转拼音的Java开源类库,在PinYin4j的功能基础上做了一些改进. [JPinyin主要特性]1.准确.完善的字库:Unicode编码从4E00-9FA5范围及3007(〇)的20903个汉字中,JPinyin能转换除46个异体字(异体字不存在标准拼音)之外的所有汉字:2.拼音转换速度快:经测试,转换Unicode编码从4E00-9FA5范围的20902个汉字,JPinyin耗