您的位置:首页 > 编程语言 > Java开发

java判断是否为汉字 和 是否有汉字

2012-07-04 09:59 309 查看
java判断是否为汉字 和 是否有汉字
2010-06-30 11:51
本文章为转载他人文章

Java代码

publicboolean vd(String str){

char[] chars=str.toCharArray();

boolean isGB2312=false;

for(int i=0;i<chars.length;i++){

byte[] bytes=(""+chars[i]).getBytes();

if(bytes.length==2){

int[] ints=newint[2];

ints[0]=bytes[0]& 0xff;

ints[1]=bytes[1]& 0xff;

if(ints[0]>=0x81 && ints[0]<=0xFE && ints[1]>=0x40 && ints[1]<=0xFE){

isGB2312=true;

break;

}

}

}

return isGB2312;

}

首先要import java.util.regex.Pattern 和 java.util.regex.Matcher

这两个包,接下来是代码

判断是否为数字

Java代码

publicboolean isNumeric(String str)

{

Pattern pattern = Pattern.compile(”[0-9]*”);

Matcher isNum = pattern.matcher(str);

if( !isNum.matches() ) {

returnfalse;

}

returntrue;

}

java.lang.Character.isDigit(ch[0])

Java代码

publicstaticvoid main(String[] args) {

int count = 0;

String regEx = "[\\u4e00-\\u9fa5]";

//System.out.println(regEx);

String str = "中文fdas ";

//System.out.println(str);

Pattern p = Pattern.compile(regEx);

Matcher m = p.matcher(str);

while (m.find()) {

for (int i = 0; i <= m.groupCount(); i++) {

count = count + 1;

}

}

System.out.println("共有 " + count + "个 ");

}

-------------------------------------------------------------------

判断java String中是否有汉字的方法

java用的是Unicode 编码char 型变量的范围是0-65535 无符号的值,可以表示
65536个字符,基本上地球上的字符可被全部包括了,实际中,我们希望判断一个字符是不是汉字,或者一个字符串里的字符是否有汉字来满足业务上的需
求,String类中有个这样的方法可得到其字符长度length() ,看下面例子,

Java代码

String s1 = "我是中国人";

String s2 = "imchinese";

String s3 = "im中国人";

System.out.println(s1+":"+new String(s1).length());

System.out.println(s2+":"+new String(s2).length());

System.out.println(s3+":"+new String(s3).length());

OUTPUT:

我是中国人:5

imchinese:9

im中国人:5

看到了吧,字符串里如果有双字节的字符java就把每个字符都按双字节编码,如果都是单字节的字符就按单字节编码

于是按照以上的规律,结合一位QQ昵称 ?G茶?I珠海 兄的提示由以下解决方法,就是判断字符串的长度和字符字节的长度是否相同来判断是否有双字节的字符

Java代码

System.out.println((s1.getBytes().length == s1.length())?"s1无汉字":"s1有汉字");

System.out.println((s2.getBytes().length == s2.length())?"s2无汉字":"s2有汉字");

System.out.println((s3.getBytes().length == s3.length())?"s3无汉字":"s3有汉字");
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: