A. 在java中,怎么把繁体字转化为简体字
实现思路一:采用字符串的方式实现
[java]viewplain
packagecom.bzu.converter;
importjava.util.Scanner;
/**
*思路一:采用字符串的方式实现
*/
publicclassJianFanConvert1{
publicstaticfinalStringjianti="万与丑专业丛东丝";
publicstaticfinalStringfanti="万与丑专业丛东丝";
publicstaticvoidmain(String[]args){
Scannerinput=newScanner(System.in);
System.out.println("请输入你想转换的句子");
Stringwords=input.next();
for(inti=0;i<words.length();i++){
chartempChar=words.charAt(i);
intposition=jianti.indexOf(tempChar);//此方法调用时间复杂度为O(n)
charfantiChar;
if(position==-1){
fantiChar=tempChar;
}else{
fantiChar=fanti.charAt(position);
}
System.out.print(fantiChar);
}
}
}
分析上述实现,时间复杂度为O(n*n),当问题规模扩大时会非常耗时。
实现思路二:采用哈希算法实现
1.哈希方法
哈希方法在就是在键和值之间建立一个确定的对应函数关系hash(),就是key向value的换算关系,使得每一个键与结构中的一个唯一的存储位置相对应:值的存储位置=hash(键)即Value的位置=hash(key)
例如有一组“键值对”:<5,”tom”>、<8,”Jane”>、<12,”Bit”>、<17,”Lily”>、<20,”sunny”>,我们按照如下哈希函数对键进行计算:hash(x)=x%17+3,得出如下结果:hash(5)=8、hash(8)=11、hash(12)=15、hash(17)=3、hash(20)=6。
我们把<5,”tom”>、<8,”Jane”>、<12,”Bit”>、<17,”Lily”>、<20,”sunny”>分别放到地址为8、11、15、3、6的位置上。当要检索17对应的值的时候,只要首先计算17的哈希值为3,然后到地址为3的地方去取数据就可以找到17对应的数据是“Lily”了。
使用哈希方法,查询的时间复杂度为O(1),能够直接定位其位置,大大加快数据的查询速度。
2.哈希表
将数据采用哈希算法进行保存的数据结构就是哈希表,常见操作put、get、remove。
Java中的HashMap使用(Java内置的哈希表数据结构)
HashMap的主要方法
intsize():得到Map中“键-值对”的数量
booleanisEmpty():Map是否是空的,也就是是否不含有任何“键-值对”
booleancontainsKey(Objectkey):Map中是否含有以key为键的“键-值对”
booleancontainsValue(Objectvalue):Map中是否含有以value为值的“键-值对”
Objectget(Objectkey):从Map中得到以key为键的值,如果Map中不含有以key为键的“键-值对”则返回null
Objectput(Objectkey,Objectvalue):向Map中存储以key为键、value为值的“键-值对”
Objectremove(Objectkey):从Map中移除以key为键的“键-值对”
voidclear():清除所有“键-值对”
SetkeySet():得到所有的键
Collectionvalues():得到所有的值
SetentrySet():得到所有的“键-值对”,Set中的类型是Map.Entry
[java]viewplain
packagecom.bzu.converter;
importjava.util.HashMap;
importjava.util.Map;
importjava.util.Scanner;
/**
*思路二:采用哈希算法实现
*/
publicclassJianFanConvert2{
publicstaticfinalStringjianti="万与丑专业丛东丝";
publicstaticfinalStringfanti="万与丑专业丛东丝";
publicstaticvoidmain(String[]args){
Map<Character,Character>map=newHashMap<Character,Character>();
for(inti=0;i<jianti.length();i++){
map.put(jianti.charAt(i),fanti.charAt(i));
}
Scannerinput=newScanner(System.in);
System.out.println("请输入你想转换的句子");
Stringwords=input.next();
/**
*为了测试随着问题规模的扩大用时
*/
for(inti=0;i<10;i++){
words=words+words;
}
longbegin=System.currentTimeMillis();
for(inti=0;i<words.length();i++){
chartempChar=words.charAt(i);
Charactercharacter=map.get(tempChar);
charfantiChar;
if(character==null){
fantiChar=tempChar;
}else{
fantiChar=character;
}
System.out.print(fantiChar);
}
longend=System.currentTimeMillis();
System.out.println(" 用时:"+(end-begin));
}
}
分析上述算法实现,时间复杂度变为o(n)
问题探讨:
为什么算法复杂度由O(n*n)变成O(n),但是实际执行时间没有明显的变化?
print,数据在CPU、内存中运算都非常快,一旦与外设(打印机、网络(网卡)、显示设备(显卡))交换数据,速度就会慢很多
来自
junjunguoguo的专栏
B. java 中文繁体转中文简体软件怎么用
你输入想要转换的中文,按转换就会转换成繁体字了。
C. java如何做到繁体中文转换
说的不具体,如果是在JSP网页上,可以使用资源文件,properties扩展名
D. JAVA中如何将GBK繁体字转化成简体字
有getCharacterEncoding() 方法,返回值是String的,你可以根据String处理来判断是哪种字符集;以下是api的解释
Returns the name of the character encoding used in the body of this request.
当然有点偏题了,关于“JAVA中如何将GBK繁体字转化成简体字”的问题你可以看以下链接:http://hi..com/chenhaoxian/blog/item/cbada8c3e3432c54b219a86b.html
这是方法之一,你完全可以放到服务器端做,并且做的更细一些,只是那样会加重服务器负担,一般的都可以在浏览器处理……
E. java有什么好用的中文简体转繁体的插件
目前网上还没有插件的汉化包。
F. 如何用java将繁体字转为简体字
我不知道你是要自己实现,还是说只要有个类库就可以了,下面是我找的一个类库的实例代码:
packagetest3;
importnet.sf.chineseutils.ChineseUtils;
publicclassTest{
publicstaticvoidmain(Stringargs[])throwsException{
System.out.println(ChineseUtils.simpToTrad("把BIG5繁体字符串转换成的GB简体字符串。"));
}
}
输出:
把BIG5繁体字符串转换成的GB简体字符串。
G. java 实现 简体gb 到 繁体 再到 big5码 的转换
public class CharDecode {
public static void main(String[] args) throws Exception{
// TODO: Add your code here
System.setProperty("file.encoding","big5");//系统默认字符改成big5
System.out.println("please enter a chinese String:");
byte [] buf = new byte[1024];
String strInfo = null;
int pos = 0;
int ch = 0;
while(true)
{
ch = System.in.read();
System.out.println(Integer.toHexString(ch));
switch(ch)
{
case '\r':
break;
case '\n':
strInfo = new String(buf,0,pos);//使用默认字符集
for(int i=0;i<strInfo.length();i++)
{
System.out.println(Integer.toHexString(/*(int)*/strInfo.charAt(i)));
}
System.out.println(new String(strInfo.getBytes("big5"),"gb2312"));//big5转换成gb2312
break;
default:
buf[pos++] = (byte)ch;
}
}
}
}
H. Java如何判断汉字是简体还是繁体
[\u4e00-\u9fa5]
这个可以判断是不是汉字,我测试时,不能区分简繁。
找到下边这些JS的正则。(测试也区分不了简繁。)
[\u2E80-\u9FFF]+$
匹配所有东亚区的语言
[\u4E00-\u9FFF]+$
匹配简体和繁体
[\u4E00-\u9FA5]+$
匹配简体
希望能你有点帮助,我再找找怎么区分简繁。
I. java web 中简繁转换,却转换成了标点符号,急!!!
问题可能出在String text = req.getParameter("text");
因为传入servlet的字符编码的问题。
试试:
String text = new String(java.net.URLDecoder.decode(req.getParameter("text"),"GBK"));
如果不行,再到网上找找这个字符转化的有关材料。
J. 如何将一个简体中文的网站转变成繁体的网站呢
对网页进行简繁字体转换的方法一般有两种:一是使用专业软件,另外一种是制作两套版本的网页。显然,这两种方法都较为麻烦,这里提供一个非常简单的方法,只须在页面上添加几行代码就可以轻松搞定网页的简繁转换了。
首先在下载用于简繁转换的js文件transform.js,下载地址自行网络。
复制到网站目录下,然后使用网页制作工具打开需要进行简繁转换的网页,在代码中的加入如下代码:
<script type="text/javascript" language="javascript" src="transform.js"></script>
<script type="text/javascript" language="javascript">
function s2t()
{document.body.innerHTML = document.body.innerHTML.s2t();}
function t2s()
{document.body.innerHTML = document.body.innerHTML.t2s();}
</script>
然后在网页的适当位置添加简繁转换链接:
<a href="javascript:s2t()">繁体中文</a> <a href="javascript:t2s()">简体中文</a>
保存页面后,点击“繁体中文”链接,页面就会成繁体,点击“简体中文”就会自动转换为简体形式,方便不同用户的选择浏览了。
提示:这种方法不仅适用于静态网站还可以用在论坛、留言板等动态网站系统中。