`
嚣张把刀
  • 浏览: 9524 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类

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中文繁体转中文简体

    在这个例子中,我们首先创建了一个`OpenCc4j`对象,指定配置类型为`SimplifiedChineseToTraditionalChinese`,然后将繁体文本转换为简体文本。这只是一个基本的用法,实际应用中可能需要处理更复杂的情况,比如文件...

    java中文简体转繁体ZHConverter

    在处理中文字符时,Java提供了多种支持,包括简体中文向繁体中文的转换。`ZHConverter` 是一个特定的Java工具类,专用于实现这个功能。它不仅能够转换单个文本字符串,还能对整个文件夹内的所有文件进行批量转换,这...

    java实现简繁体转换

    在Java编程语言中,实现简体中文到繁体中文或者反之的转换是一项常见的任务,尤其在处理多语言支持或者文本处理应用中。本篇将详细探讨如何利用Java实现这一功能,以及相关的关键知识点。 首先,我们需要理解简繁体...

    Java简体繁体相互转换含测试类原代码

    本资源提供的"Java简体繁体相互转换含测试类原代码"就是一个很好的实例,展示了如何在Java中进行简体中文与繁体中文之间的转换。 首先,我们要理解简体中文和繁体中文的区别。简体中文是大部分中国大陆地区使用的...

    java繁体简体转换

    总结来说,Java中进行繁体与简体中文的转换主要依赖于第三方库,如OpenCC,通过创建转换器对象和调用转换方法实现。在实际开发中,可以根据项目需求选择合适的转换方式,确保转换的准确性和效率。同时,对于提供的`...

    Java中文繁体转换.rar

    在处理中文字符时,Java提供了一套完整的字符集和API来支持多语言环境,包括简体中文和繁体中文的转换。这个名为"Java中文繁体转换.rar"的压缩包文件,显然包含了用于进行中文繁体和简体互转的工具类。 在Java中,...

    中文繁体简体转换依赖文件

    解压这个“中文繁体简体转换依赖文件”后,你应该将其放在你的项目代码的同一目录下,这样程序在运行时就能找到并加载这些依赖。如果你的代码已经引用了进行繁简转换的库,那么这些依赖文件很可能是该库的本地化资源...

    简体字和繁体字转换4种方法

    在计算机领域,简体字和繁体字的转换是一个常见的需求,特别是在中文信息处理和跨地区交流中。简体字是中国大陆广泛使用的汉字形式,而繁体字则在台湾、香港、澳门以及海外华人社区中更为常见。了解如何在两者之间...

    Delphi实现繁体中文与简体中文互转

    `ConvertText`函数实现了实际的转换操作,它接收一个字符串,调用OpenCC的转换函数,然后返回转换结果。 然而,如果不想依赖外部库,开发者也可以自定义转换算法,例如使用字典映射的方式。这种方式需要维护一个...

    opencc-1.0.4.zip

    它在处理中文文本时,能有效地将繁体字转化为简体字,反之亦然,同时也支持其他类型的中文文本转换,如香港繁体与简体、台湾正体与简体之间的转换。对于在Windows操作系统环境下工作的用户来说,这是一个非常实用的...

    字体转换,简体转繁体

    在IT领域,字体转换是一项常见的任务,特别是在处理中文文本时,有时我们需要将简体字转换为繁体字,以便在不同地区或特定应用场景下使用。本文将深入探讨“字体转换,简体转繁体”这一主题,以及如何实现这一转换...

    opencc-1.0.1-win64.zip

    OpenCC 是一个开源的中文字符转换库,主要用于简体中文和繁体中文之间的转换。在标题"opencc-1.0.1-win64.zip"中,我们可以看到这是OpenCC的一个特定版本——1.0.1的Windows 64位版本的压缩包。描述中提到"下载解压...

    java 简繁字互转换DEMO

    在Java编程语言中,处理简体与繁体字的互换是一个常见的需求,尤其是在处理中文文本或者进行跨地区交流时。这个"java 简繁字互转换DEMO"提供了一个示例,帮助开发者理解如何实现这样的功能。下面将详细探讨相关知识...

    将简体中文和繁体中文转换拼音的jar包 pinyin4j-2.5.0.jar

    《使用pinyin4j库进行中文到拼音转换的详解》 在处理中文字符时,有时我们...通过简单调用其提供的API,开发者可以方便地处理汉字、词语乃至整个句子的拼音转换,无论是简体中文还是繁体中文,pinyin4j都能游刃有余。

    OpenCC 1.0.5 Windows

    OpenCC 是一个强大的开源项目,专门用于简体中文与繁体中文之间的转换。这款软件具有高效、准确的特点,被广泛应用于各种需要进行两岸中文字符互换的场景,如文本处理、文档转换、网页本地化等。OpenCC 的设计旨在...

    ZHConverter简繁体转换及实现方法

    "ZHConverter"是一个专门用于中文简体与繁体转换的工具,它提供了方便的API和实现方法,使得开发者能够轻松地在两种汉字形式之间进行转换。本文将深入探讨"ZHConverter"的工作原理、使用方法以及其在实际项目中的...

    java简转繁-繁转简

    在Java编程语言中,"简转繁-繁转简"是指将简体中文转换为繁体中文,或者反过来,将繁体中文转换为简体中文的过程。这个过程涉及到字符编码和字符串处理,对于处理中文文本内容的应用程序尤其重要。下面我们将深入...

    android 汉字繁简转换

    OpenCC提供预设的转换配置,如"t2s"(繁体到简体)和"s2t"(简体到繁体)。下面是一个简单的示例: ```java import cc.opencc.*; // 创建OpenCC对象 OpenCC openCc = new OpenCC("t2s.json"); // 使用简体到...

    Java汉字转换拼音

    除了`pinyin4j`,还有一些其他库可供选择,比如`hanziconv`和`opencc4j`,它们不仅可以转换拼音,还可以处理繁体到简体、简体到繁体的转换,以及标点符号的处理等。 在实际应用中,我们可能还需要考虑一些特殊情况...

    Java软件 简繁转换易jar程式嵌入工具

    Java软件简繁转换易jar程式嵌入工具是一种用于文本处理的应用程序,主要功能是将简体中文字符转换为繁体中文字符,或者反之,将繁体中文转换为简体中文。这种工具对于需要在不同地区或语言环境中进行文字交流的人来...

Global site tag (gtag.js) - Google Analytics