日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

区域数据导入功能(pinyin4J使用)

發布時間:2024/4/13 编程问答 38 豆豆
生活随笔 收集整理的這篇文章主要介紹了 区域数据导入功能(pinyin4J使用) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

pinyin4J

<!-- 引入pinyin4J的依賴 --> <dependency><groupId>com.belerweb</groupId><artifactId>pinyin4j</artifactId><version>2.5.0</version> </dependency>

?

@Testpublic void test1(){//河北省 石家莊市 橋西區String province = "河北省";String city = "石家莊市";String district = "橋西區";//簡碼---->>HBSJZQXprovince = province.substring(0, province.length() - 1);city = city.substring(0, city.length() - 1);district = district.substring(0, district.length() - 1);String info = province + city + district;String[] headByString = PinYin4jUtils.getHeadByString(info);String shortcode = StringUtils.join(headByString);System.out.println(shortcode);//城市編碼---->>shijiazhuangString citycode = PinYin4jUtils.hanziToPinyin(city, "");System.out.println(citycode);} package com.learn.bos.utils;import java.util.Arrays;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.exception.BadHanyuPinyinOutputFormatCombination;public class PinYin4jUtils {/*** 將字符串轉換成拼音數組* * @param src* @return*/public static String[] stringToPinyin(String src) {return stringToPinyin(src, false, null);}/*** 將字符串轉換成拼音數組* * @param src* @return*/public static String[] stringToPinyin(String src, String separator) {return stringToPinyin(src, true, separator);}/*** 將字符串轉換成拼音數組* * @param src* @param isPolyphone* 是否查出多音字的所有拼音* @param separator* 多音字拼音之間的分隔符* @return*/public static String[] stringToPinyin(String src, boolean isPolyphone,String separator) {// 判斷字符串是否為空if ("".equals(src) || null == src) {return null;}char[] srcChar = src.toCharArray();int srcCount = srcChar.length;String[] srcStr = new String[srcCount];for (int i = 0; i < srcCount; i++) {srcStr[i] = charToPinyin(srcChar[i], isPolyphone, separator);}return srcStr;}/*** 將單個字符轉換成拼音* * @param src* @return*/public static String charToPinyin(char src, boolean isPolyphone,String separator) {// 創建漢語拼音處理類HanyuPinyinOutputFormat defaultFormat = new HanyuPinyinOutputFormat();// 輸出設置,大小寫,音標方式defaultFormat.setCaseType(HanyuPinyinCaseType.LOWERCASE);defaultFormat.setToneType(HanyuPinyinToneType.WITHOUT_TONE);StringBuffer tempPinying = new StringBuffer();// 如果是中文if (src > 128) {try {// 轉換得出結果String[] strs = PinyinHelper.toHanyuPinyinStringArray(src,defaultFormat);// 是否查出多音字,默認是查出多音字的第一個字符if (isPolyphone && null != separator) {for (int i = 0; i < strs.length; i++) {tempPinying.append(strs[i]);if (strs.length != (i + 1)) {// 多音字之間用特殊符號間隔起來tempPinying.append(separator);}}} else {tempPinying.append(strs[0]);}} catch (BadHanyuPinyinOutputFormatCombination e) {e.printStackTrace();}} else {tempPinying.append(src);}return tempPinying.toString();}public static String hanziToPinyin(String hanzi) {return hanziToPinyin(hanzi, " ");}/*** 將漢字轉換成拼音* * @param hanzi* @param separator* @return*/public static String hanziToPinyin(String hanzi, String separator) {// 創建漢語拼音處理類HanyuPinyinOutputFormat defaultFormat = new HanyuPinyinOutputFormat();// 輸出設置,大小寫,音標方式defaultFormat.setCaseType(HanyuPinyinCaseType.LOWERCASE);defaultFormat.setToneType(HanyuPinyinToneType.WITHOUT_TONE);String pinyingStr = "";try {pinyingStr = PinyinHelper.toHanyuPinyinString(hanzi, defaultFormat,separator);} catch (BadHanyuPinyinOutputFormatCombination e) {// TODO Auto-generated catch blocke.printStackTrace();}return pinyingStr;}/*** 將字符串數組轉換成字符串* * @param str* @param separator* 各個字符串之間的分隔符* @return*/public static String stringArrayToString(String[] str, String separator) {StringBuffer sb = new StringBuffer();for (int i = 0; i < str.length; i++) {sb.append(str[i]);if (str.length != (i + 1)) {sb.append(separator);}}return sb.toString();}/*** 簡單的將各個字符數組之間連接起來* * @param str* @return*/public static String stringArrayToString(String[] str) {return stringArrayToString(str, "");}/*** 將字符數組轉換成字符串* * @param str* @param separator* 各個字符串之間的分隔符* @return*/public static String charArrayToString(char[] ch, String separator) {StringBuffer sb = new StringBuffer();for (int i = 0; i < ch.length; i++) {sb.append(ch[i]);if (ch.length != (i + 1)) {sb.append(separator);}}return sb.toString();}/*** 將字符數組轉換成字符串* * @param str* @return*/public static String charArrayToString(char[] ch) {return charArrayToString(ch, " ");}/*** 取漢字的首字母* * @param src* @param isCapital* 是否是大寫* @return*/public static char[] getHeadByChar(char src, boolean isCapital) {// 如果不是漢字直接返回if (src <= 128) {return new char[] { src };}// 獲取所有的拼音String[] pinyingStr = PinyinHelper.toHanyuPinyinStringArray(src);// 創建返回對象int polyphoneSize = pinyingStr.length;char[] headChars = new char[polyphoneSize];int i = 0;// 截取首字符for (String s : pinyingStr) {char headChar = s.charAt(0);// 首字母是否大寫,默認是小寫if (isCapital) {headChars[i] = Character.toUpperCase(headChar);} else {headChars[i] = headChar;}i++;}return headChars;}/*** 取漢字的首字母(默認是大寫)* * @param src* @return*/public static char[] getHeadByChar(char src) {return getHeadByChar(src, true);}/*** 查找字符串首字母* * @param src* @return*/public static String[] getHeadByString(String src) {return getHeadByString(src, true);}/*** 查找字符串首字母* * @param src* @param isCapital* 是否大寫* @return*/public static String[] getHeadByString(String src, boolean isCapital) {return getHeadByString(src, isCapital, null);}/*** 查找字符串首字母* * @param src* @param isCapital* 是否大寫* @param separator* 分隔符* @return*/public static String[] getHeadByString(String src, boolean isCapital,String separator) {char[] chars = src.toCharArray();String[] headString = new String[chars.length];int i = 0;for (char ch : chars) {char[] chs = getHeadByChar(ch, isCapital);StringBuffer sb = new StringBuffer();if (null != separator) {int j = 1;for (char ch1 : chs) {sb.append(ch1);if (j != chs.length) {sb.append(separator);}j++;}} else {sb.append(chs[0]);}headString[i] = sb.toString();i++;}return headString;}public static void main(String[] args) {// pin4j 簡碼 和 城市編碼 String s1 = "中華人民共和國"; String[] headArray = getHeadByString(s1); // 獲得每個漢字拼音首字母System.out.println(Arrays.toString(headArray));String s2 ="長城" ; System.out.println(Arrays.toString(stringToPinyin(s2,true,",")));String s3 ="長";System.out.println(Arrays.toString(stringToPinyin(s3,true,",")));} }

?

?

?

總結

以上是生活随笔為你收集整理的区域数据导入功能(pinyin4J使用)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。