最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

java中文轉(zhuǎn)拼音工具類詳解

 更新時(shí)間:2019年04月22日 08:32:37   作者:Tlimited  
這篇文章主要為大家詳細(xì)介紹了java中文轉(zhuǎn)拼音工具類的相關(guān)資料,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下

本文實(shí)例為大家分享了java中文轉(zhuǎn)拼音工具類的具體代碼,供大家參考,具體內(nèi)容如下

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

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • 將本地SpringBoot項(xiàng)目發(fā)布到云服務(wù)器的方法

    將本地SpringBoot項(xiàng)目發(fā)布到云服務(wù)器的方法

    這篇文章主要介紹了如何將本地SpringBoot項(xiàng)目發(fā)布到云服務(wù)器,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-12-12
  • java使用篩選法求n以內(nèi)的素?cái)?shù)示例(java求素?cái)?shù))

    java使用篩選法求n以內(nèi)的素?cái)?shù)示例(java求素?cái)?shù))

    這篇文章主要介紹了java使用篩選法求n以內(nèi)的素?cái)?shù)示例(java求素?cái)?shù)),需要的朋友可以參考下
    2014-04-04
  • Java 深入探討設(shè)計(jì)模式之原型模式篇

    Java 深入探討設(shè)計(jì)模式之原型模式篇

    設(shè)計(jì)模式(Design pattern)是一套被反復(fù)使用、多數(shù)人知曉的、經(jīng)過分類編目的、代碼設(shè)計(jì)經(jīng)驗(yàn)的總結(jié)。使用設(shè)計(jì)模式是為了可重用代碼、讓代碼更容易被他人理解、保證代碼可靠性
    2021-10-10
  • 談?wù)凧ava中try-catch-finally中的return語句

    談?wù)凧ava中try-catch-finally中的return語句

    我們知道return語句用在某一個(gè)方法中,一是用于返回函數(shù)的執(zhí)行結(jié)果,二是用于返回值為void類型的函數(shù)中,僅僅是一個(gè)return語句(return ;),此時(shí)用于結(jié)束方法的執(zhí)行,也即此return后的語句將不會(huì)被執(zhí)行,當(dāng)然,這種情況下return語句后不能再有其它的語句了
    2016-01-01
  • java中@SuppressWarnings注解用法詳解

    java中@SuppressWarnings注解用法詳解

    這篇文章主要介紹了java中@SuppressWarnings注解用法詳解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-02-02
  • 關(guān)于maven本地倉庫的配置方式

    關(guān)于maven本地倉庫的配置方式

    這篇文章主要介紹了關(guān)于maven本地倉庫的配置方式,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-06-06
  • java中拼接字符串的5種方法效率對比

    java中拼接字符串的5種方法效率對比

    這篇文章主要給大家介紹了關(guān)于java中拼接字符串的5種方法效率對比的相關(guān)資料,文中通過示例代碼和圖片介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧。
    2018-01-01
  • centos上安裝配置java WEB環(huán)境

    centos上安裝配置java WEB環(huán)境

    前提是centos6.3系統(tǒng)已經(jīng)安裝好,在這里以64位系統(tǒng)為例,下面是jdk,tomcat,mysql下載安裝步驟,有需要的小伙伴可以參考下
    2016-10-10
  • Spring Scheduling本地任務(wù)調(diào)度設(shè)計(jì)與實(shí)現(xiàn)方式

    Spring Scheduling本地任務(wù)調(diào)度設(shè)計(jì)與實(shí)現(xiàn)方式

    這篇文章主要介紹了Spring Scheduling本地任務(wù)調(diào)度設(shè)計(jì)與實(shí)現(xiàn)方式,具有很好的參考價(jià)值,希望對大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-04-04
  • Java反射之深入理解

    Java反射之深入理解

    這篇文章主要介紹了Java反射機(jī)制的深入理解,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-09-09

最新評論

昆山市| 黔江区| 突泉县| 格尔木市| 油尖旺区| 兰考县| 威海市| 溧水县| 鄂尔多斯市| 隆回县| 北辰区| 隆昌县| 河曲县| 古田县| 陆川县| 江油市| 安仁县| 巩留县| 桃源县| 阳谷县| 达孜县| 南雄市| 嘉义县| 紫金县| 七台河市| 山丹县| 汝城县| 海宁市| 乌兰察布市| 广水市| 叶城县| 尼玛县| 靖边县| 金华市| 江油市| 新野县| 荆门市| 石首市| 娱乐| 马公市| 涟水县|