Android-- 汉字转拼音开源工具包Jpinyin介绍

最近要实现一个根据词语得到词语对应拼音的功能,找到了Jpinyin这个开源工具包,使用下来发现它非常强大,完全满足我的需求,下面对它做一个简单的介绍,希望能够帮助到有需要的朋友。

 一、项目介绍:

JPinyin是一个汉字转拼音的Java开源类库,在PinYin4j的功能基础上做了一些改进。

【JPinyin主要特性】
1、准确、完善的字库;
        Unicode编码从4E00-9FA5范围及3007(〇)的20903个汉字中,JPinyin能转换除46个异体字(异体字不存在标准拼音)之外的所有汉字;
2、拼音转换速度快;
        经测试,转换Unicode编码从4E00-9FA5范围的20902个汉字,JPinyin耗时约100毫秒。
3、多拼音格式输出支持;
        JPinyin支持多种拼音输出格式:带音标、不带音标、数字表示音标以及拼音首字母输出格式;
4、常见多音字识别;
        JPinyin支持常见多音字的识别,其中包括词组、成语、地名等;
5、简繁体中文转换

项目地址:JPinyin是一个汉字转拼音的Java开源类库

二、实现原理:

通过阅读源代码发现,JPinyin的实现原理是通过将生字、词组和对应的拼音以及简繁汉字存放在数据库,然后通过代码操作数据库来实现汉字/词组转拼音和汉字简繁互转的,数据库都是加密的,不能扩充,但这个工具已经比较完善了,没有必要自己去扩充数据库,经本人测试,未发现有转换错误的问题。

三、核心方法说明:

Jpinyin里面一共有四个类:

ChineseHelper.java     汉字简繁体转换类

PinyinFormat.java         拼音格式类

PinyinHelper.java          汉字转拼音类

PinyinResource.java    资源文件加载类

下面的PinyinFormat   有这几种格式 :

  1. WITH_TONE_NUMBER--数字代表声调
  2. WITHOUT_TONE--不带声调
  3. WITH_TONE_MARK--带声调


//单个汉字 ---> 拼音
public static String[] convertToPinyinArray(char c, PinyinFormat pinyinFormat)

//单个汉字 --->   带声调格式的拼音
public static String[] convertToPinyinArray(char c)

//字符串  ---->  拼音     @param separator 拼音分隔符
public static String convertToPinyinString(String str, String separator, PinyinFormat pinyinFormat)

//字符串--->带声调格式的拼音
public static String convertToPinyinString(String str, String separator)

//判断一个汉字是否为多音字
public static boolean hasMultiPinyin(char c)

//字符串--->拼音的首字母
public static String getShortPinyin(String str)
时间: 2024-08-04 23:30:21

Android-- 汉字转拼音开源工具包Jpinyin介绍的相关文章

汉字转拼音开源工具包Jpinyin介绍

最近要实现一个根据词语得到词语对应拼音的功能,找到了Jpinyin这个开源工具包,使用下来发现它非常强大,完全满足我的需求,下面对它做一个简单的介绍,希望能够帮助到有需要的朋友. 一.项目介绍: JPinyin是一个汉字转拼音的Java开源类库,在PinYin4j的功能基础上做了一些改进. [JPinyin主要特性] 1.准确.完善的字库: Unicode编码从4E00-9FA5范围及3007(〇)的20903个汉字中,JPinyin能转换除46个异体字(异体字不存在标准拼音)之外的所有汉字:

Android汉字转拼音HanziToPinyin

Android系统本身自带有有将汉字转化为英文拼音的类和方法.具体的类就是HanziToPinyin.java.Android系统自身实现的通讯录中就使用了HanziToPinyin.java对中文通讯录做分组整理.通过HanziToPinyin.java可以将汉字转化为拼音输出,在一些应用中非常必须,比如联系人的分组,假设一个人通讯录中存有若干姓张(ZHANG)的联系人,那么所有姓张的联系人按理都应该分组在"Z"组下.又比如微信.QQ等等此类社交类APP,凡是涉及到联系人.好友分组排

Android 汉字转拼音之JNI篇

package com.tool.hz2py; import android.os.Bundle; import android.app.Activity; import android.view.Menu; import android.widget.TextView; public class MainActivity extends Activity { protected Hz2py hz2py; @Override protected void onCreate(Bundle save

Android 汉字转拼音之工具篇

/* * Copyright (C) 2011 The Android Open Source Project * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://w

用jpinyin实现汉字转拼音功能

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

Java_开源框架_JPinyin汉字转拼音的Java开源库

本博文为子墨原创,转载请注明出处! http://blog.csdn.net/zimo2013/article/details/50039339 1.介绍 JPinyin是一个汉字转拼音的Java开源类库,在PinYin4j的功能基础上做了一些改进.[JPinyin主要特性]1.准确.完善的字库:Unicode编码从4E00-9FA5范围及3007(〇)的20903个汉字中,JPinyin能转换除46个异体字(异体字不存在标准拼音)之外的所有汉字:2.拼音转换速度快:经测试,转换Unicode编

汉字转拼音的Java类库:JPinyin

JPinyin是一个汉字转拼音的Java开源类库,在PinYin4j的功能基础上做了一些改进. [JPinyin主要特性]1.准确.完善的字库:Unicode编码从4E00-9FA5范围及3007(〇)的20903个汉字中,JPinyin能转换除46个异体字(异体字不存在标准拼音)之外的所有汉字:2.拼音转换速度快:经测试,转换Unicode编码从4E00-9FA5范围的20902个汉字,JPinyin耗时约100毫秒.3.多拼音格式输出支持:JPinyin支持多种拼音输出格式:带音标.不带音标

【推荐】iOS汉字转拼音第三方库

PinYin4Objc是一个在git汉字转拼音的开源库,支持简体和繁体中文.效率POAPinyin等其他库要高,转换库也完整下面简单介绍 实现原理 使用unicode_to_hanyu_pinyin.txt存储汉字编码相对应的拼音,以字典加载到内存中 NSString *resourceName =[[NSBundle mainBundle] pathForResource:@"unicode_to_hanyu_pinyin" ofType:@"txt"]; NSS

汉字转拼音与简繁转换的Java实现

最近HanLP希望支持拼音与繁体功能,所以学习了几个开源的Java实现,优化后集成进来.stuxuhai/jpinyin原理这是GitHub上星星最多一个,主要原理就是利用一张HashTable将字与拼音一一对应起来.同时,在扫描的时候也会将当前汉字依次与后面的3个.2个.1个汉字组合,判断下是否存在多音字词组.也就是说,它最多支持4字词的多音字校正.同时,顺序扫描并且组合的话,复杂度的常数项有点高(大约是O(4n)).再乘上哈希表的复杂度,感觉并不是一个很高效的实现.词典格式jpinyin中一