Java怎么实现简体繁体转换
发表于:2025-12-01 作者:千家信息网编辑
千家信息网最后更新 2025年12月01日,本篇内容主要讲解"Java怎么实现简体繁体转换",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"Java怎么实现简体繁体转换"吧!新建工具类:HKTWword
千家信息网最后更新 2025年12月01日Java怎么实现简体繁体转换
本篇内容主要讲解"Java怎么实现简体繁体转换",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"Java怎么实现简体繁体转换"吧!
新建工具类:HKTWwordVO
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 Set conflictingSets = 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 = "钩子里面是关注"; // 转台湾繁体 String convert = HKTWwordVO.convert(str, HKTWwordVO.TAIWAN); System.out.println(convert); // 转香港繁体 convert = HKTWwordVO.convert(str, HKTWwordVO.HONGKONG); System.out.println(convert); // 繁体转简体 String convert2 = HKTWwordVO.convert("鉤子裡面是關注、鈎子裏面是關注", 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怎么实现简体繁体转换"有了更深的了解,不妨来实际操作一番吧!这里是网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!
繁体
香港
台湾
内容
词汇
学习
实用
更深
兴趣
字体
实用性
实际
工具
操作简单
方法
更多
朋友
类名
网站
转台
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
数据库设置连接视图权限
搭建svn服务器
数据库锁表与解锁
北明软件开发商
医生和软件开发
服务器配置哪些参数
服务器时延检测
含有软件开发专业的大学
网络安全团课意义
数据库分离在哪里
仓库管理的数据库表
软件开发定制收费标准
网络安全管理实行什么的原则
2019网络安全活动周条幅
15岁学习网络安全吗
丰富网络安全宣传手段
软件开发需求的状态
远程服务器与管理员联系
苍茫之境mc服务器
视频图片数据库的制作c
汕尾卫星软件开发定做价格
php数据库怎么添加汉字
网上围棋软件开发者
服务器上的内容怎么通过网线下载
走进网络安全科技馆
网络安全课件p主题班会
软件开发选什么方向比较好
数据库技术兴起于
普陀区服务器回收公司哪家便宜
药品评审中心的辅料数据库