Java中如何将中文转换为英文String
来源:互联网 发布:七天网络查分登录app 编辑:程序博客网 时间:2024/05/23 12:33
在JAVA 编程中我们经常免不了需要对中文排序,而往往我们排序的依据就是中文的首字母,当然无论依据什么排序,我们都需要将中文转换成为String
首先,我们要调用一个库 pinyin4j-2.5.0.jar
下载地址:http://sourceforge.net/projects/pinyin4j/
下载解压,里面有个pinyin4j-2.5.0.jar,使用这个库即可。
其次,使用这个库,使用的方法很简单,需要注意以下几点:
- / 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.WITH_TONE_MARK);
- // WITH_V:用v表示ü (nv)
- // WITH_U_AND_COLON:用"u:"表示ü (nu:)
- // WITH_U_UNICODE:直接用ü (nü)
- format.setVCharType(HanyuPinyinVCharType.WITH_U_UNICODE);
PinyinHelper.toHanyuPinyinStringArray(input[i], format);
这个接口有个容错判断 如果input 如果传入的不是汉字,就不能转换成拼音,那么直接返回null,所以需要用正则表达式判断是否是中文
Character.toString(input[i]).matches("[\\u4E00-\\u9FA5]+")
更加具体的内容请看下面的完整代码
<pre name="code" class="java">public static String getPinYin(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 < input.length; i++) { if (Character.toString(input[i]).matches("[\\u4E00-\\u9FA5]+")) { //判断字符是否是中文 //toHanyuPinyinStringArray 如果传入的不是汉字,就不能转换成拼音,那么直接返回null //由于中文有很多是多音字,所以这些字会有多个String,在这里我们默认的选择第一个作为pinyin String[] temp = PinyinHelper.toHanyuPinyinStringArray(input[i], format); output += temp[0]; } else { output += Character.toString(input[i]); } } } catch (BadHanyuPinyinOutputFormatCombination e) { e.printStackTrace();// Log.v(TAG, "BadHanyuPinyinOutputFormatCombination"); } return output; } /** * 取出拼音中第一个字母,一般第一个字母的使用时比较常见的 * @param chines * @return */ public static String converterToFirstSpell(String chines) { String pinyinName = ""; char[] nameChar = chines.toCharArray(); HanyuPinyinOutputFormat defaulFormat = new HanyuPinyinOutputFormat(); defaulFormat.setCaseType(HanyuPinyinCaseType.LOWERCASE); defaulFormat.setToneType(HanyuPinyinToneType.WITHOUT_TONE); defaulFormat.setVCharType(HanyuPinyinVCharType.WITH_V); for (int i = 0; i < nameChar.length; i++) { if (nameChar[i] > 128) { try { pinyinName += PinyinHelper.toHanyuPinyinStringArray(nameChar[i], defaulFormat)[0].charAt(0); } catch (BadHanyuPinyinOutputFormatCombination ex) { ex.printStackTrace(); } } else { pinyinName += nameChar[i]; } } return pinyinName; }
1 0
- Java中如何将中文转换为英文String
- 如何将matlab中文版本转换为英文界面
- SQL中如何将月份转换为英文缩写
- C++中如何将wchar_t转换为string
- Python中如何将String类型转换为变量
- C++中如何将char类型转换为String 类型
- Java如何将Exception.printStackTrace()转换为String输出
- java 如何将byte中的有效长度转换为String
- java 如何将byte中的有效长度转换为String
- Windows 8: 将英文系统转换为中文
- ubuntu将系统从中文环境转换为英文环境
- 如何将float转换为string
- 如何将float转换为string(ZZ)
- 如何将float转换为string
- 如何将string转换为Date类型
- 如何将float转换为string
- c++如何将string 转换为char*
- 中文转换为拼音时,同时将中文括号转换为英文括号
- opencv 各个版本 与vs 的匹配关系
- 结合AFNetworking 和 MJExtension的二次网络请求的封装
- image super-resolution as sparse representation of raw image patches 论文详解
- AJXA的基本使用方法和代码
- Android设计模式源码解析之单例模式
- Java中如何将中文转换为英文String
- JMeter之 Non-GUI Mode (Command Line mode)
- 【java】Handler,Looper,Message,MessageQueue。【android】HandlerThread+Looper
- android Base64加密解密
- 文章标题
- Windows平台下MySQL常用操作与命令
- 必经之路,写个乞丐版的贪食蛇
- 读取文本文件,拆分所有sql后进行批处理stmt.addBatch(sql)
- Android应用请求获取Root权限