java调用opencc将中文简体繁体转换
Open Chinese Convert(OpenCC)是一个开源的中文简繁转换项目,致力于制作高质量的基于统计预料的简繁转换词库。还提供函数库(libopencc)、命令行简繁转换工具、人工校对工具、词典生成程序、在线转换服务及图形用户界面。
opencc的特点:
严格区分「一简对多繁」、「一简对多异」和「地域用词差别」。
支持异体字转换,兼容陆港澳台等不同地区用字差别。
严格审校一简对多繁词条,原则为「能分则不合」,用户可自定义合并。
支持中国大陆、台湾、香港异体字和地区习惯用词转换,如「裏」「裡」、「鼠標」「滑鼠」。
词库和函数库完全分离,可以自由修改、导入、扩展。
支持C、C++、Python、PHP、Java、Ruby、Node.js and Android等多种语言API,提供命令行直接调用,以及图形界面。
兼容Windows、Linux、Mac等多种平台。
项目使用java编写,官网说支持java语言,但是没有找到java的api,所以使用曲折的方式实现:linux下安装opencc,编写shell脚本,然后使用java调用shell脚本来进行简繁转换。
opencc安装请点击 ubuntu安装opencc,简体转繁体
opencc安装后编写shell脚本
#!/bin/sh #echo $1 echo $1 |opencc -c s2tw
测试:
ubuntu@ubuntu-vm:/usr/local$ ./s2tw.sh 微儿博客www.weare.net.cn 微兒博客www.weare.net.cn
java调用shell
public static Object sc2tw(String content){try {StringBuffer sb = new StringBuffer("");Process ps = Runtime.getRuntime().exec("/usr/local/s2tw.sh \""+content+"\"");BufferedReader in = new BufferedReader(new InputStreamReader(ps.getInputStream()));String line = null;ps.waitFor();while((line = in.readLine())!=null){sb.append(line);}in.close();if(sb.indexOf("\"")==0){sb = sb.deleteCharAt(0);}if(sb.lastIndexOf("\"")==sb.length()-1){sb = sb.deleteCharAt(sb.length()-1);}ps.destroy();line = null;return sb;} catch (IOException e) {logger.error("shell执行出错");} catch (InterruptedException e) {logger.error("shell执行出错");}return content;
}
但是具体执行过程中发现java程序运行一段时间后会卡死,经过排查发现当shell脚本传入的参数特别大时,java会一直等待shell脚本执行完成,所以对于长度特别长的文本采用分段转换
public static String simple2tw(String content){StringBuffer cs = new StringBuffer("");int length = content.length();int count = length/words;int ys = length%words;if (count==0) {cs.append(sc2tw(content));}else{for(int i=0;i<count;i++){cs.append(sc2tw(content.substring(i*words, (i+1)*words)));length = (i+1)*words;}if(ys>0){cs.append(sc2tw(content.substring(length)));}}return cs.toString();
}
更多内容请访问 微儿博客
java调用opencc将中文简体繁体转换相关推荐
- 中文简体繁体之间的转换
中文简体繁体之间的转换 2007 年 09 月 13 日 星期四 10:58 对网页进行简繁字体转换的方法一般有两种:一是使用<简繁通>这样的专业软件,另外一种是制作两套版本的网页.显然, ...
- java 简体繁体转换
简体繁体转换网上有开源jar包:ZHConverter 此处做个mark //繁体转简体ZHConverter zhConverter1 = ZHConverter.getInstance(ZHCon ...
- 简体繁体转换功能php,php如何实现简体繁体转换-PHP问题
思绪: 依据中文简体.繁体对应的数据表,将其整顿成一个以简体字为键,繁体字为值的一个一维数组,相似上面这样的一个数组构造: $data=array('侧'=>'側','厂'=>'廠'); ...
- 2013.08.08——— android 中文简繁体转换
2013.08.08--- android 中文简繁体转换 参考:[url]http://www.pupuliao.info/2012/09/java%E7%9A%84utf-8-%E7%B9%81% ...
- js简体繁体转换代码
js简体繁体转换代码 javascript简体繁体转换代码 转载地址:http://www.cnblogs.com/genson/archive/2008/04/16/1004632.html js简 ...
- VB.net下有个函数strconv可以进行简体繁体转换(转载)
http://msdn.microsoft.com/zh-cn/library/cd7w43ec.aspx 有个简单的方法,VB.net下有个函数strconv可以进行简体繁体转换,添加引用Micro ...
- .NET中的中文简繁体转换
.NET中的中文简繁体转换 http://www.cnblogs.com/shinewaycn/archive/2005/07/04/186251.aspx 导入名字空间Microsoft.Visua ...
- 免费在线汉字简体繁体转换工具
简体字和繁体字相互转换,很实用的! 进入这里一键转换:简体繁体转换
- 汉字简体繁体转换----Javascript
最近看到有个简体--繁体字互相转换的程序,是用JS实现的,感觉很好玩,所以拿来研究研究.先看看界面如下: 汉字简体繁体转换 上面的所有代码如下: <script> function cop ...
- JavaScript看图器 汉字简体繁体转换 中国日历类 自动更换桌面墙纸
抢24的扑克游戏 自动更换桌面墙纸 中国日历类 汉字简体繁体转换 JavaScript看图器 无缝MARQUEE 包含图片的option下拉菜单 微软JS脚本的加密与解 ...
最新文章
- 2021年大数据Flink(五):Standalone-HA高可用集群模式
- 操作系统储存管理功能
- 通过容器编排和服务网格来改进Java微服务的可测性
- Centos7环境安装Kibana5.2.2
- Java实训项目:GUI学生信息管理系统(2017)
- 初步接触XCode和IPhone Simulator
- 关于Android发送邮件
- 微信小程序图片转换成文字_涨知识!这个微信小程序,能将纸上文字转换成电子版...
- [NOI题库]1.3编程基础之算术表达式与顺序执行 题解(一)
- 架构师到底该不该写代码?
- CAD卸载/完美解决安装失败/如何彻底卸载清除干净cad各种残留注册表和文件的方法
- 黑金开发板液晶显示图片
- Registration based Few-Shot Anomaly Detection
- 联合国首席AI顾问专访:我们期望AI应该是完美的,但这永远不会
- java是怎么分配内存和释放内存的-详解
- clang diagnostic的简单介绍
- mybatis 连表查询,子查询 collection,返回 vo
- 【微信公众号开发】微信支付-退款通知
- DJL-Java开发者动手学深度学习之线性回归
- 电子签名工具 SignatureTool
热门文章
- [POI2012] 约会 Rendezvous
- 新西兰皇后镇-我眼中的西施
- 计算机开机响三短嘀嘀,电脑显示器不亮,开机2短3长报警音什么情况啊?:电脑...
- android前置录像,Android Camera2video使用前置摄像头(Android Camera2video use front camera)
- 使用Windows Sysprep来封装系统
- Unreal Engine 4学习资料整理
- 昆山花桥房都要上万 上海买家占9成“江山”
- 12个开源的后台端管理系统
- 学考计算机会考考点工作总结,高中生学业水平考试工作总结范文
- DSP TMS320C6455 中断解析