![]() |
| 编程社区 » web开发 » 求助!关于简繁体混合查询 |
求助!关于简繁体混合查询 |
xudoudou123 |
发表:
|
你可以参照这里
http://www.knowsky.com/3213.html
这里是用javascript实现的,你可以把里边代码改成java实现就可以了,不是很麻烦的.
先定义两个数组,然后按照相应的位置读取相应的简体繁体汉字就可以了.
试试这个程序
那两段string太长了,不让发,我只取了前一段,你去那个网站把它们补全就可以了.
package com.demo;
package com..demo;
public class TranCodeTest {
private static String simStr = "啊阿埃挨哎唉哀皑癌蔼矮艾碍爱隘鞍氨安俺按暗岸胺案肮昂盎凹敖熬翱袄傲奥懊澳芭捌扒叭吧笆八疤巴拔跋靶把耙坝霸罢爸白柏百"
+ "摆佰败拜稗斑班搬扳般颁板版扮拌伴瓣半办绊邦帮梆榜膀绑棒磅蚌镑傍谤苞胞包褒剥薄雹保堡饱宝抱报暴豹鲍爆杯碑悲卑北辈背贝钡倍狈备惫焙被奔苯"
;
private static String comStr = "啊阿埃挨哎唉哀皚癌藹矮艾礙愛隘鞍氨安俺按暗岸胺案肮昂盎凹敖熬翺襖傲奧懊澳芭捌扒叭吧笆八疤巴拔跋靶把耙壩霸罷爸白柏百"
+ "擺佰敗拜稗斑班搬扳般頒板版扮拌伴瓣半辦絆邦幫梆榜膀綁棒磅蚌鎊傍謗苞胞包褒剝薄雹保堡飽寶抱報暴豹鮑爆杯碑悲卑北輩背貝鋇倍狽備憊焙被奔苯"
;
public static void main(String[] args) {
String word="摆";
String[] allword=transWord(word);
System.out.println(allword[0]+allword[1]);
}
public static String[] transWord(String word){
int index=simStr.indexOf(word);
if(index<0){
index=comStr.indexOf(word);
}
String[] result=new String[2];
result[0]=String.valueOf(simStr.charAt(index));
result[1]=String.valueOf(comStr.charAt(index));
return result;
}
}
这只是单个字的,你修改一下就可以实现单词的转换了.
一楼的方法最好,因为用JS,占用的是客户端的资源。
谢谢 两位 我可能有些地方没说清楚
根据转换的精确性等级,大概可以分成4个等级:
1字符码表一对一映射。 例如发->發、干->幹等。但是简繁转换并不是简单的一对一关系,如干在不同上下文,可以分别对应:乾 干 榦,因此该转换不十分准确。这也是大部分简繁转换软件所能达到的级别
2. 对于一对多单字,根据词语识别进行转换。例如:头发->頭髮、出发->出發等。例中的髮和發在简体中都是发,但在繁体中却不一样,这样的情况很多,如干、里、秋等。
3. 对词语表达方式差异的转换。简繁体有不同的表达方式,例如:字节->位元組、光盘->光碟、信息->資訊等。这些表达方式如果不处理,不易理解,尤其是港台不太习惯大陆的表达方式。
4. 根据上下文的词汇翻译。例如:在中国大陆的语言习惯中,"文件"可以是通常意义上的"文件",也可以是计算机中存取的"文件"(document)。但是,在繁体语言习惯中,这两个东西就是分别用"文件"和"档案"两个词来表达。该转换极难做到,而且速度很慢。
我希望能做到大多数的3级转换~~
并且 我的页面代码 是
UNI
unicode
那就做一个简繁词库对照表,把你收集到的对应词组都存进来。
这样花费精力太大了吧~~我们还要组织词汇~所以 想购买现成的控件~~
http://www.cjk.org/cjk/reference/chinvar.htm
你问问GOOGLE怎么做的
现在都准备收复台湾了,还费劲搞这个,呵呵
话说回来,也可能应该把简体取消,用繁体,因为繁体才能体现中国真正的文字文化。简体基本上不具备研究价值。
没办法啊~~和台湾没关系 是香港用~~
就是不想费精力搞 才想买一个 ,可是好像没什么人卖这个东西~
| 编程社区 2008 浙ICP备09013498号 |
| © TinyBBS.cn |
| 编程好站连接:codeproject sf.net codeplex |