Java 简体繁体 几种处理方式

一)背景

由于这两天领导给香港用户进行系统培训的时候,有用户提到,需要系统中能支持一些关键字简体繁体查询。

简单说,用户输入简体或输入繁体时,都能筛选出简体和繁体的所有数据。

 

优点:数据筛选的多样化

缺点:查询性能可能会稍微慢一点

 

二)ZHConverter

在网上百度了一下,几乎所有的简体繁体转换都是用到了zhconverter的jar,而且很多文章都是靠前排列的,所以着重看了下该方式的实现源码,发现该jar实现的方式可能会存在性能问题

 

原因一:代码中用了线程同步。

原因二:在使用的时候,需要不断初始化一些类(有些类可以用单例模式)。

所以该方式就被抛弃了。

 

三)opencc4j

该方式比较简单,直接引用jar,然后直接使用。(选用的此方式)

在pom.xml文件中新增以下配置(1.1.0版是目前最新版本):

<!--字符繁体简体转换-->
<dependency>
    <groupId>com.github.houbb</groupId>
    <artifactId>opencc4j</artifactId>
    <version>1.1.0</version>
</dependency>

 

直接在代码中使用,如下:

// 把繁体转换成简体
String simple = ZhConverterUtil.convertToSimple("歐陽");
// 把简体转换成繁体
String traditional = ZhConverterUtil.convertToTraditional("欧阳");

 

四)自主实施

看了上面两种方式之后,自己也想到了该怎么实现简体繁体转换了,下面只提供思路。

 

第一步:把所有简体和繁体穷举出来,然后分别编写成两个配置文件,可以使用unicode方式配置成键值对的关系,如后缀为properties的文件。

第二步:写一个单例类,该类在项目启动的时候加载一次,可以先把所有简体和繁体配置加载到内存中(文件不会很大),或放置到redis缓存中,使用键值对的方式存储起来。

第三步:调用的时候,把需要转换的字符串分隔,然后自行匹配,最后重新拼接好(可能需要把每一个中文分隔转换成unicode方式去匹配,匹配好之后再重新拼接好)。

 

识别二维码关注个人微信公众号

本章完结,待续,欢迎转载!
 
本文说明:该文章属于原创,如需转载,请标明文章转载来源!

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值