中文 转 英文 java

Java中如何将中文转换为英文String

_夜渐凉

于 2019-06-27 11:00:29 发布
13284
收藏 5

在JAVA 编程中我们经常免不了需要对中文排序,而往往我们排序的依据就是中文的首字母,当然无论依据什么排序,我们都需要将中文转换成为String
首先,我们要调用一个库 pinyin4j-2.5.0.jar

下载地址://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);  

更加直接的说,将中文转换成为String 主要是使用下面的这个接口:

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

这个接口有个容错判断 如果input 如果传入的不是汉字,就不能转换成拼音, 那么直接返回null,所以需要用正则表达式判断是否是中文

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

更加具体的内容请看下面的完整代码 

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; }

来源于:

//blog.csdn.net/whale_kyle/article/details/51577588

java 将中文字符转为英文,java 将中文字符号转为英文

package test; import java.io.UnsupportedEncodingException; public class TestString { public static void main(String args[]) throws UnsupportedEncodingException{ String s = " 强力清除广告,上网更快的浏览器!"; System.out.println(s); System.out.println(convertMoString(s)); } public static synchronized String convertMoString(String sMo) { String sReturn = sMo; if (sReturn == null) { return sReturn; } try { sReturn = sReturn.toUpperCase(); sReturn = sReturn.replace(',', ','); sReturn = sReturn.replace('。', '.'); sReturn = sReturn.replace(';', ';'); sReturn = sReturn.replace('!', '!e69da5e887aae799bee5baa6e997aee7ad9431333335313732'); sReturn = sReturn.replace('?', '?'); sReturn = sReturn.replace(':', ':'); sReturn = sReturn.replace('"', '"'); sReturn = sReturn.replace('“', '"'); sReturn = sReturn.replace('”', '"'); // sReturn = sReturn.replace('-', ' '); // sReturn = sReturn.replace('_', ' '); sReturn = sReturn.replace(',', ','); sReturn = sReturn.replace('0', '0'); sReturn = sReturn.replace('1', '1'); sReturn = sReturn.replace('2', '2'); sReturn = sReturn.replace('3', '3'); sReturn = sReturn.replace('4', '4'); sReturn = sReturn.replace('5', '5'); sReturn = sReturn.replace('6', '6'); sReturn = sReturn.replace('7', '7'); sReturn = sReturn.replace('8', '8'); sReturn = sReturn.replace('9', '9'); sReturn = sReturn.replace('A', 'A'); sReturn = sReturn.replace('B', 'B'); sReturn = sReturn.replace('C', 'C'); sReturn = sReturn.replace('D', 'D'); sReturn = sReturn.replace('E', 'E'); sReturn = sReturn.replace('F', 'F'); sReturn = sReturn.replace('G', 'G'); sReturn = sReturn.replace('H', 'H'); sReturn = sReturn.replace('I', 'I'); sReturn = sReturn.replace('J', 'J'); sReturn = sReturn.replace('K', 'K'); sReturn = sReturn.replace('L', 'L'); sReturn = sReturn.replace('M', 'M'); sReturn = sReturn.replace('N', 'N'); sReturn = sReturn.replace('O', 'O'); sReturn = sReturn.replace('P', 'P'); sReturn = sReturn.replace('Q', 'Q'); sReturn = sReturn.replace('R', 'R'); sReturn = sReturn.replace('S', 'S'); sReturn = sReturn.replace('T', 'T'); sReturn = sReturn.replace('U', 'U'); sReturn = sReturn.replace('V', 'V'); sReturn = sReturn.replace('W', 'W'); sReturn = sReturn.replace('X', 'X'); sReturn = sReturn.replace('Y', 'Y'); sReturn = sReturn.replace('Z', 'Z'); sReturn = strReplace(sReturn, "‘", "'"); } catch (Exception ex) { return sMo; } return sReturn; } public static synchronized String strReplace(String sAll, String sOld,String sNew) { int iT = 0; String sF = null; String sH = null; /* 如果新串中包括旧串,不让替多只让替少 */ if (sNew.indexOf(sOld) != -1) { return sAll; } if ((sAll == null) || (sOld == null) || (sNew == null)) { return sAll; } iT = sAll.indexOf(sOld); while (iT != -1) { sF = sAll.substring(0, iT); sH = sAll.substring(iT + sOld.length()); sAll = sF + sNew + sH; iT = sAll.indexOf(sOld); } return sAll; } } /* 运行结果: 强力清除广告,上网更快的浏览器! 强力清除广告,上网更快的浏览器! */

Toplist

最新的帖子

標籤