如何判断一个String中含有中文字符? 想到一个最本的办法,呵呵:把传转换,用URLEncoder.encode(str,"gb2312"),如果长度变了就是含有中文字符,不过如果含有非中文的,比如韩文就不管用了。这种方法在只有英文和汉字的时候应该能正常工作。否则将无法得到正确的结果。如果希望得到100%正确的结果,我想比较麻烦。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 http://www.csdn.net/Expert/FAQ/FAQ_Index.asp?id=410 http://www.csdn.net/Expert/TopicView1.asp?id=833916 比较str的长度即str.length()和将之转成二进制数组的长度即str.getBytes().length的大小是否相等即可因为1个中文在字符串里面长度算1,转换成二进制就占两个字节,所以长度会变大他们之间的差就是中文字符的个数 除了标准ascii好像别国的扩展语言都要占两位的,恐怕难以分辨中文和韩文吧只能分辨英文和其他语种 public static final int checkChinese(String Str) { int r=2; for(int i=0;i<Str.length();i++) { char ch=Str.charAt(i); short chint=(short)ch; if((chint>=48)&&(chint<=57)) { //这个字符是数字 } else if(((chint>=91)&&(chint<=122))||((chint>=65)&&(chint<=90))||(chint==95)) { //这个字符是英文或者是"_" r=1; } else if(((chint&0XFF00)>>8)>0) { //这个字符是中文 r=0; } else { //这个字符是特殊字符 r=-1; } } return r; } 已经是明天了,怎么没有?方便的话:也给我把[email protected] java.lang.Character里面的方法对你有用吗?我看好像是可以的.认真看一下吧. 呵呵,其实只要了解汉字是如何编码的就会写这个程序了。我们知道ASCII编码占一个Byte,而八个bit中最高位一定为0。汉字使用两个Byte编码,最高位bit一定是1。程序怎么写你还不会吗? 对呀,同意楼上的,我的程序就是这么做的,难道还满足不了situju (司徒雎) 的要求? wap开发,如何使用webservice 进行取数据 如何将String转换成CLOB java的cs项目scoket编程在外网出现了点问题,请高手指点 java 怎样编写一个可以自动运行的程序 虚心请教高手 为什么没人回答这个问题,难吗? JDBC入门问题! 各位帮忙! 学郁闷了,出来逛逛!!! (求助)神奇的java程序 这样的正则表达式怎么写,立即给分! 所谓jre是指什么涵义,具体有那些部分组成 我初学问个简单的问题
因为1个中文在字符串里面长度算1,转换成二进制就占两个字节,所以长度会变大
他们之间的差就是中文字符的个数
只能分辨英文和其他语种
{
int r=2;
for(int i=0;i<Str.length();i++)
{
char ch=Str.charAt(i);
short chint=(short)ch;
if((chint>=48)&&(chint<=57))
{
//这个字符是数字
}
else
if(((chint>=91)&&(chint<=122))||((chint>=65)&&(chint<=90))||(chint==95))
{
//这个字符是英文或者是"_"
r=1;
}
else
if(((chint&0XFF00)>>8)>0)
{
//这个字符是中文
r=0;
}
else
{
//这个字符是特殊字符
r=-1;
}
}
return r;
}
方便的话:也给我把
[email protected]
我们知道ASCII编码占一个Byte,而八个bit中最高位一定为0。
汉字使用两个Byte编码,最高位bit一定是1。
程序怎么写你还不会吗?