common-tools(1)之中文相关工具类使用(ZhUtil)

原创
2013/02/24 17:26
阅读数 914

    发了个自己写的工具包,发现可能是样例代码太少了,导致反响不够强烈啊。那么从现在开始就以博文的形式介绍下我的这个工具包有哪些功能。

    工具包我发布到github上了,开源中国的地址是:http://www.oschina.net/p/common-tools

    首先介绍个比较特殊和简单的工具ZhUtil(com.baijob.commonTools.ZhUtil.java),此工具类的主要功能是汉字的简体和繁体转换和全角半角转换,我想这个在实际工作中应该应用很广吧。Ok,废话不多,上代码:

package com.baijob.commonTools;

import org.junit.Test;

public class ZhUtilTest {
	@Test
	public void zhUtilTest(){
		//全角To半角
		String str1 = ZhUtil.toDBC("处理的符号:,!    不处理的符号『』【】");
		System.out.println(str1);
		
		//半角To全角
		String str2 = ZhUtil.toSBC("处理的符号,.");
		System.out.println(str2);
		
		String s_str1 = "简体中文到繁体中文转换这件事没有捷径,只能硬来。";
		ZhUtil.initS2T();
		String t_str1 = ZhUtil.toTraditional(s_str1);
		System.out.println(t_str1);
		
		String t_str2 = "簡體中文到繁體中文轉換這件事沒有捷徑,只能硬來。";
		ZhUtil.initS2T();
		String s_str2 = ZhUtil.toSimplified(t_str2);
		System.out.println(s_str2);
		
		//调用我是为了释放资源,要是不调那一堆替换的map可就一直自内存里呆着了,我可不管。
		ZhUtil.clean();
	}
}
其实这四个方法的原理比较简单。首先看全角和半角。

    由于在ASCII中半角和全角都有固定的偏移量,所以直接加或者减偏移量就可以了,具体在哪个范围里还有偏移量是多少我是网上找到,这个可以要是有需要大家可以进我的代码里拷贝相应的代码段,没有依赖。

    再看简体和繁体的转换。这个就没有那么好运气是有固定的偏移数了,我网上搜了半天,发现在维基百科有专门的繁简对照表,好吧,那只能硬来了,整理一下这个对照表,把它放进一个配置文件中,读入内存,然后挨个查找替换,这个大家可以进src/main/resource/data下有两个setting文件,分别对应的是简体转繁体和繁体转简体。开头的注释我还特意加上了维基百科的地址哦。

    当然,一定会有人问我为什么简体转繁体和繁体转简体会是完全两个对应表,我会告诉你:我也不知道,维基百科上就是这样,这个语言方面的事情没有深入研究过,如果某个大神知道希望告知我哈。

    应该是工具的思想和方法还是十分简单的,但是总结这些我也是花费了好多时间,我的想法是,不一定要做出多么牛叉的东西,只是希望能节省大家更多的时间。

    最后,祝大家中秋节快乐哈!

展开阅读全文
加载中
点击加入讨论🔥(2) 发布并加入讨论🔥
打赏
2 评论
5 收藏
0
分享
返回顶部
顶部