本篇內(nèi)容主要講解“Java怎么實現(xiàn)簡體繁體轉(zhuǎn)換”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“Java怎么實現(xiàn)簡體繁體轉(zhuǎn)換”吧!
公司主營業(yè)務:做網(wǎng)站、網(wǎng)站制作、移動網(wǎng)站開發(fā)等業(yè)務。幫助企業(yè)客戶真正實現(xiàn)互聯(lián)網(wǎng)宣傳,提高企業(yè)的競爭能力。創(chuàng)新互聯(lián)建站是一支青春激揚、勤奮敬業(yè)、活力青春激揚、勤奮敬業(yè)、活力澎湃、和諧高效的團隊。公司秉承以“開放、自由、嚴謹、自律”為核心的企業(yè)文化,感謝他們對我們的高要求,感謝他們從不同領(lǐng)域給我們帶來的挑戰(zhàn),讓我們激情的團隊有機會用頭腦與智慧不斷的給客戶帶來驚喜。創(chuàng)新互聯(lián)建站推出橋西免費做網(wǎng)站回饋大家。
import java.io.BufferedReader; import java.io.FileNotFoundException; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; import java.util.HashMap; import java.util.HashSet; import java.util.Iterator; import java.util.Map; import java.util.Properties; import java.util.Set; /** * 類名稱:HKTWwordVO * 類描述:香港、臺灣字體庫 * * @author 兮赫 * Created by 2020-08-24 18:52 */ public class HKTWwordVO { /** 所有詞匯 */ private Properties charMap = new Properties(); /** 高頻詞匯 */ private SetconflictingSets = new HashSet (); /** 繁體_臺灣 */ public static final int TAIWAN = 0; /** 繁體_香港 */ public static final int HONGKONG = 1; /** 簡體 */ public static final int SIMPLE = 2; private static final int NUM_OF_CONVERTERS = 3; private static final HKTWwordVO[] converters = new HKTWwordVO[NUM_OF_CONVERTERS]; private static final String[] propertyFiles = new String[NUM_OF_CONVERTERS]; static { propertyFiles[TAIWAN] = "taiwan.properties"; // 臺灣 propertyFiles[HONGKONG] = "hongkong.properties"; // 香港 propertyFiles[SIMPLE] = "simple.properties"; // 簡體 } public static void main(String[] args) { String str = "鉤子里面是關(guān)注"; // 轉(zhuǎn)臺灣繁體 String convert = HKTWwordVO.convert(str, HKTWwordVO.TAIWAN); System.out.println(convert); // 轉(zhuǎn)香港繁體 convert = HKTWwordVO.convert(str, HKTWwordVO.HONGKONG); System.out.println(convert); // 繁體轉(zhuǎn)簡體 String convert2 = HKTWwordVO.convert("鉤子裡面是關(guān)注、鈎子裏面是關(guān)注", HKTWwordVO.SIMPLE); System.out.println(convert2); } /** * * @param converterType * 0 for traditional and 1 for simplified * @return */ public static HKTWwordVO getInstance(int converterType) { if (converterType >= 0 && converterType < NUM_OF_CONVERTERS) { if (converters[converterType] == null) { synchronized (HKTWwordVO.class) { if (converters[converterType] == null) { converters[converterType] = new HKTWwordVO( propertyFiles[converterType]); } } } return converters[converterType]; } else { return null; } } public static String convert(String text, int converterType) { HKTWwordVO instance = getInstance(converterType); return instance.convert(text); } private HKTWwordVO(String propertyFile) { InputStream is = null; is = getClass().getResourceAsStream("/"+propertyFile); // File propertyFile = new // File("C:/Temp/testMDB/TestTranslator/abc.txt"); if (is != null) { BufferedReader reader = null; try { reader = new BufferedReader(new InputStreamReader(is)); charMap.load(reader); } catch (FileNotFoundException e) { } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } finally { try { if (reader != null) reader.close(); if (is != null) is.close(); } catch (IOException e) { } } } initializeHelper(); } @SuppressWarnings("rawtypes") private void initializeHelper() { Map stringPossibilities = new HashMap (); Iterator iter = charMap.keySet().iterator(); while (iter.hasNext()) { String key = (String) iter.next(); if (key.length() >= 1) { for (int i = 0; i < (key.length()); i++) { String keySubstring = key.substring(0, i + 1); if (stringPossibilities.containsKey(keySubstring)) { Integer integer = (Integer) (stringPossibilities .get(keySubstring)); stringPossibilities.put(keySubstring, new Integer(integer.intValue() + 1)); } else { stringPossibilities.put(keySubstring, new Integer(1)); } } } } iter = stringPossibilities.keySet().iterator(); while (iter.hasNext()) { String key = (String) iter.next(); if (((Integer) (stringPossibilities.get(key))).intValue() > 1) { conflictingSets.add(key); } } } public String convert(String in) { StringBuilder outString = new StringBuilder(); StringBuilder stackString = new StringBuilder(); for (int i = 0; i < in.length(); i++) { char c = in.charAt(i); String key = "" + c; stackString.append(key); if (conflictingSets.contains(stackString.toString())) { } else if (charMap.containsKey(stackString.toString())) { outString.append(charMap.get(stackString.toString())); stackString.setLength(0); } else { CharSequence sequence = stackString.subSequence(0, stackString.length() - 1); stackString.delete(0, stackString.length() - 1); flushStack(outString, new StringBuilder(sequence)); } } flushStack(outString, stackString); return outString.toString(); } private void flushStack(StringBuilder outString, StringBuilder stackString) { while (stackString.length() > 0) { if (charMap.containsKey(stackString.toString())) { outString.append(charMap.get(stackString.toString())); stackString.setLength(0); } else { outString.append("" + stackString.charAt(0)); stackString.delete(0, 1); } } } String parseOneChar(String c) { if (charMap.containsKey(c)) { return (String) charMap.get(c); } return c; } }
到此,相信大家對“Java怎么實現(xiàn)簡體繁體轉(zhuǎn)換”有了更深的了解,不妨來實際操作一番吧!這里是創(chuàng)新互聯(lián)網(wǎng)站,更多相關(guān)內(nèi)容可以進入相關(guān)頻道進行查詢,關(guān)注我們,繼續(xù)學習!