利用java怎么編寫一個中文轉拼音工具類

本文章向大家介紹利用java怎么編寫一個中文轉拼音工具類的基本知識點總結和需要注意事項,具有一定的參考價值,需要的朋友可以參考一下。

索縣網站建設公司創新互聯公司,索縣網站設計制作,有大型網站制作公司豐富經驗。已為索縣近千家提供企業網站建設服務。企業網站搭建\成都外貿網站建設要多少錢,請找那個售后服務好的索縣做網站的公司定做!

Java可以用來干什么

Java主要應用于:1. web開發;2. Android開發;3. 客戶端開發;4. 網頁開發;5. 企業級應用開發;6. Java大數據開發;7.游戲開發等。

具體內容如下

import java.util.HashSet;
import java.util.Iterator;
import java.util.Set;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import java.util.regex.PatternSyntaxException;
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;
import net.sourceforge.pinyin4j.format.exception.BadHanyuPinyinOutputFormatCombination;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

public class PinyinUtil {
 public static String getPinyin(String paramString) {
 return getPinyinZh_CN(convertStringByChinese(paramString));
 }

 public static String getPinyinToUpperCase(String paramString) {
 return getPinyinZh_CN(convertStringByChinese(paramString)).toUpperCase();
 }

 public static String getPinyinToLowerCase(String paramString) {
 return getPinyinZh_CN(convertStringByChinese(paramString)).toLowerCase();
 }

 public static String getPinyinFirstToUpperCase(String paramString) {
 return getPinyin(paramString);
 }

 private static HanyuPinyinOutputFormat getDefaultFormat() {
 HanyuPinyinOutputFormat localHanyuPinyinOutputFormat = new HanyuPinyinOutputFormat();
 localHanyuPinyinOutputFormat.setCaseType(HanyuPinyinCaseType.LOWERCASE);
 localHanyuPinyinOutputFormat.setToneType(HanyuPinyinToneType.WITHOUT_TONE);
 localHanyuPinyinOutputFormat.setVCharType(HanyuPinyinVCharType.WITH_U_AND_COLON);
 return localHanyuPinyinOutputFormat;
 }

 private static Set<String> convertStringByChinese(String paramString) {
 char[] arrayOfChar1 = paramString.toCharArray();
 if ((paramString != null) && (!paramString.trim().equalsIgnoreCase(""))) {
 char[] arrayOfChar2 = paramString.toCharArray();
 String[][] arrayOfString = new String[paramString.length()][];
 for (int i = 0; i < arrayOfChar2.length; i++) {
 char c = arrayOfChar2[i];
 if ((String.valueOf(c).matches("[\\u4E00-\\u9FA5]+")) || (String.valueOf(c).matches("[\\u3007]"))) {
  try {
  arrayOfString[i] = PinyinHelper.toHanyuPinyinStringArray(arrayOfChar1[i], getDefaultFormat());
  } catch (BadHanyuPinyinOutputFormatCombination localBadHanyuPinyinOutputFormatCombination) {
  localBadHanyuPinyinOutputFormatCombination.printStackTrace();
  }
 } else {
  arrayOfString[i] = new String[] { String.valueOf(arrayOfChar2[i]) };
 }
 }
 String[] arrayOfString1 = exchange(arrayOfString);
 HashSet localHashSet = new HashSet();
 for (int j = 0; j < arrayOfString1.length; j++) {
 localHashSet.add(arrayOfString1[j]);
 }
 return localHashSet;
 }
 return null;
 }

 private static String[] exchange(String[][] paramArrayOfString) {
 String[][] arrayOfString = doExchange(paramArrayOfString);
 return arrayOfString[0];
 }

 private static String[][] doExchange(String[][] paramArrayOfString) {
 int i = paramArrayOfString.length;
 if (i >= 2) {
 int j = paramArrayOfString[0].length;
 int k = paramArrayOfString[1].length;
 int m = j * k;
 String[] arrayOfString = new String[m];
 int n = 0;
 for (int i1 = 0; i1 < j; i1++) {
 for (int i2 = 0; i2 < k; i2++) {
  arrayOfString[n] = (capitalize(paramArrayOfString[0][i1]) + capitalize(paramArrayOfString[1][i2]));
  n++;
 }
 }
 String[][] arrayOfString1 = new String[i - 1][];
 for (int i2 = 2; i2 < i; i2++) {
 arrayOfString1[(i2 - 1)] = paramArrayOfString[i2];
 }
 arrayOfString1[0] = arrayOfString;
 return doExchange(arrayOfString1);
 }
 return paramArrayOfString;
 }

 private static String capitalize(String paramString) {
 char[] arrayOfChar = paramString.toCharArray();
 if ((arrayOfChar != null) && (arrayOfChar.length > 0) && (arrayOfChar[0] >= 'a') && (arrayOfChar[0] <= 'z')) {
 arrayOfChar[0] = ((char) (arrayOfChar[0] - ' '));
 }
 return new String(arrayOfChar);
 }

 private static String getPinyinZh_CN(Set<String> paramSet) {
 StringBuilder localStringBuilder = new StringBuilder();
 int i = 0;
 Iterator localIterator = paramSet.iterator();
 while (localIterator.hasNext()) {
 String str = (String) localIterator.next();
 if (i == paramSet.size() - 1) {
 localStringBuilder.append(str);
 } else {
 localStringBuilder.append(str + ",");
 }
 i++;
 }
 return localStringBuilder.toString();
 }

 public static String getPinYinHeadChar(String paramString) {
 StringBuffer localStringBuffer = new StringBuffer();
 if ((paramString != null) && (!paramString.trim().equalsIgnoreCase(""))) {
 for (int i = 0; i < paramString.length(); i++) {
 char c = paramString.charAt(i);
 String[] arrayOfString = PinyinHelper.toHanyuPinyinStringArray(c);
 if (arrayOfString != null) {
  localStringBuffer.append(arrayOfString[0].charAt(0));
 } else {
  localStringBuffer.append(c);
 }
 }
 }
 return localStringBuffer.toString();
 }

 public static String strFilter(String paramString) throws PatternSyntaxException {
 String str = "[`~!@#$%^&*()+=|{}':;',\\[\\].<>/?~!@#¥%……&*()——+|{}【】‘;:”“'。,、?\"]";
 Pattern localPattern = Pattern.compile(str);
 Matcher localMatcher = localPattern.matcher(paramString);
 return localMatcher.replaceAll("").trim();
 }

 public static String getPinYinHeadCharFilter(String paramString) {
 return strFilter(getPinYinHeadChar(paramString));
 }

 public static void main(String[] paramArrayOfString) {
 Logger localLogger = LoggerFactory.getLogger(PinyinUtil.class);
 String str = "〇的輸¥¥#s,ldsa";
 localLogger.info("小寫輸出:" + getPinyinToLowerCase(str));
 localLogger.info("大寫輸出:" + getPinyinToUpperCase(str));
 localLogger.info("首字母大寫輸出:" + getPinyinFirstToUpperCase(str));
 localLogger.info("返回中文的首字母輸出:" + getPinYinHeadChar(str));
 localLogger.info("返回中文的首字母并過濾特殊字符輸出:" + getPinYinHeadCharFilter(str));
 }
}

以上就是小編為大家帶來的利用java怎么編寫一個中文轉拼音工具類的全部內容了,希望大家多多支持創新互聯!

本文名稱:利用java怎么編寫一個中文轉拼音工具類
URL網址:http://m.kartarina.com/article30/jedhpo.html

成都網站建設公司_創新互聯,為您提供品牌網站制作動態網站網站策劃小程序開發外貿網站建設網站導航

廣告

聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯

手機網站建設
主站蜘蛛池模板: 精品人妻系列无码天堂| 日日摸日日碰人妻无码| 无码人妻一区二区三区精品视频| 中国少妇无码专区| av大片在线无码免费| 国产午夜激无码av毛片| 精品无码三级在线观看视频| 久久久无码中文字幕久...| 中文字幕av无码一二三区电影 | 精品人妻无码专区在中文字幕| 四虎影视无码永久免费| 亚洲GV天堂GV无码男同| 亚洲av永久无码精品表情包| 无码射肉在线播放视频| 亚洲av永久无码精品漫画| 色欲香天天综合网无码| 亚洲人片在线观看天堂无码 | 丰满少妇被猛烈进入无码| 亚洲不卡中文字幕无码| 亚洲精品无码午夜福利中文字幕 | 无码视频一区二区三区在线观看| 亚洲AV无码专区在线厂| 精品久久久无码人妻字幂 | 国精品无码一区二区三区左线| 亚洲成av人片天堂网无码】| 亚洲av永久中文无码精品| 日日摸日日踫夜夜爽无码| 中文字幕乱偷无码AV先锋| 成人午夜亚洲精品无码网站| 国产日韩精品无码区免费专区国产 | 午夜福利无码一区二区| 成人无码区免费视频观看| 极品粉嫩嫩模大尺度无码视频 | 中文字幕精品无码一区二区三区 | 亚洲中文字幕无码亚洲成A人片| 精品国产V无码大片在线看| 无码日韩人妻av一区免费| 亚洲综合最新无码专区| 精品无码日韩一区二区三区不卡 | 中文字幕丰满乱子无码视频| 国产白丝无码免费视频|