`

Java 判断字符串中是否含有汉字.

阅读更多
java判断是否为汉字和是否有汉字的方法
关键字: java 汉字 方法 
Java代码 
public boolean 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=new int[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;    
}  

public boolean 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=new int[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代码 
public boolean isNumeric(String str)   
{   
       Pattern pattern = Pattern.compile(”[0-9]*”);   
       Matcher isNum = pattern.matcher(str);   
       if( !isNum.matches() ) {   
          return false;   
       }   
       return true;   
}   
  
java.lang.Character.isDigit(ch[0])  

public boolean isNumeric(String str)
{
       Pattern pattern = Pattern.compile(”[0-9]*”);
       Matcher isNum = pattern.matcher(str);
       if( !isNum.matches() ) {
          return false;
       }
       return true;
}

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

-----------------另一种----------------- 
Java代码 
public static void 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 + "个 ");       
     }     

public static void 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());  

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有汉字");  

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有汉字");

OUTPUT: 
s1有汉字 
s2无汉字 
s3有汉字 // 
且慢,这样诚然可以判断出来一个串中是否有双字节编码的字符,但是要精确判断是否有汉字就有些麻烦了,我们知道还有许多其他国家的字符在Unicode中是双字节的. 
于是,需要进一步确定汉字的编码范围怎么确定呢,我用了一个本办法那就是现在记事本输出0-65535之间的字符,通过观察发现第一个汉字是'一'最后一个是'??'(现在我也不认识);这下好了判断汉字就容易多了比如我们可以通过比较字符的编码范围,最后给大家一些我试验的结果汉字基本集中在[19968,40869]之间,共有20901个汉字(是不是少了点,算算你能认识多少) 

 

 

 

转载:

http://yaoyanzhu.iteye.com/blog/418448

分享到:
评论

相关推荐

    Java中文字符处理.docx

    java中文字符处理 1. 判断字符串是否全为汉字 2. 提取字符串中的汉字 3. 判断字符串中是否含有汉字 4. 获取字符串中汉字的个数 java一般的中文判断都是利用正则表达式

    Java判断字符串是否含有乱码实例代码

    本文通过实例代码给大家介绍了Java判断字符串是否含有乱码的方法,代码简单易懂,非常不错,具有一定的参考借鉴价值,需要的朋友参考下吧

    Java正则表达式判断字符串中是否包含中文示例

    之前一个朋友问我,如何判断字符串中是否包含中文,其实解决的方法很简单,但觉着有必要写出给不知道的朋友们以参考,所以下面这篇文章主要介绍了利用Java正则表达式判断字符串中是否包含中文的方法,需要的朋友可以...

    Java 判断字符串中是否包含中文的实例详解

    主要介绍了Java 判断字符串中是否包含中文的实例详解的相关资料,这里提供实例来说明该如何实现这样的功能,需要的朋友可以参考下

    Java字符串常用方法

    判断字符串为空 判断Email有效性 判断身份证号码有效性 判断手机号码有效性 判断是否含有特殊字符 校验是否是中文名字 包括 姓名 • 校验是否是英文名字 将字符串转换为大写 ...判断字符串是否以某个后缀结尾

    java实现检测是否字符串中包含中文

    本文给大家分享了2个使用java检测字符串中是否包含中文的代码,都非常的实用,最后附上了各种字符的unicode编码的范围,方便我们以后使用正则进行匹配检测。

    2Java SE(上).doc

    6)boolean startsWith(String str):用来判断当前字符串是否是以给定的字符串起始的 boolean endsWith(String str):用来判断当前字符串是否是以给定的字符串结尾的。 7)String toUpperCase() String ...

    ASP200问.EXE

    19.如何判断字符串是否以指定字符串开头或结尾 20.如何判断字符是否是英文字符 21.如何检测字符串出现的次数 22.如何过滤字符串中的HTML代码 23.如何截取字符串 24.如何实现字符串和数组的转换 25.如何实现字符大小...

    我积攒的java工具类 基本满足开发需要的工具类

    D:\002 我的工具类\020 判断字符串中是否含有汉字\新建文本文档.txt D:\002 我的工具类\021 生成随机汉字 D:\002 我的工具类\021 生成随机汉字\DrawImage.java D:\002 我的工具类\022 生成条形码,二维码图片 D:\002...

    Java 2实用教程(第三版)实验指导与习题解答

    上机实践5 字符串、时间与数字 19 实验1 String类的常用方法 19 实验2 比较日期的大小 21 实验3 处理大整数 22 上机实践6 组件及事件处理 23 实验1 算术测试 23 实验2 信号灯 25 实验3 布局与日历 28 上机实践7 组件...

    一个用java做的简单的成绩管理系统

    // 除去字符串的所有空格 public String removeAllSpace(String str) { String tempStr="",saveString=""; for(int i=0;i&lt;str.length();i++) { tempStr=str.substring(i,i+1); if(!tempStr....

    freemarker总结

    =可以用于字符串,数值和日期来比较是否相等,但=和!=两边必须是相同类型的值,否则会产生错误,而且FreeMarker是精确比 较,"x","x ","X"是不等的.其它的运行符可以作用于数字和日期,但不能作用于字符串,大部分的时候,...

    正则表达式

    /\s+java\s+/ //匹配字符串"java" ,并且该串前后可以有一个或多个空格. /[^"] * / //匹配零个或多个非引号字符. 正则表达式的复制字符 字符 含义 ________________________________________________________...

    java_用于App验证数据验证的工具类的标准代码_android

    验证是否为空串 (包括空格、制表符、回车符、换行符组成的字符串 若输入字符串为null或空字符串,返回true) 是否不为空 验证非零正整数 验证是数字 验证是大写字母 验证是小写字母 验证是英文字母 验证输入汉字 验证...

    [开源]用SWT/JFace实现的放大镜软件jZoomer v1.2.0(附源码)

    实现功能: ·字符串国际化 ·系统文件可编辑 ·系统托盘显示 ·支持滚轮缩放功能 ·控件拖拽功能 20071227 1. JExplorer实现,初步了解JFace框架的设计思想,了解Action的使用方法...

    PHP基础教程 是一个比较有价值的PHP新手教程!

    注意不同的是被单引号引出的字符串是以字面定义的,而双引号引出的字符串可以被扩展。反斜杠(&#92;)可以被用来分割某些特殊字符。举例如下: $first = 'Hello'; $second = "World"; $full1 = "$first $second"; # ...

    HttpClient以及获取页面内容应用

    通过一个URLConnection或者一个保存有网页内容的字符串来初始化Parser,或者使用静态函数来生成一个Parser对象。 ParserFeedback的代码很简单,是针对调试和跟踪分析过程的,一般不需要改变。而使用Lexer???? ...

    XML轻松学习手册--XML肯定是未来的发展趋势,不论是网页设计师还是网络程序员,都应该及时学习和了解

    面向对象的思想方法已经非常流行了,在编程语言(例如java,js)中,都运用面向对象的编程思想。在XML中,就是要将网页也作为一个对象来操作和控制,我们可以建立自己的对象和模板。与对象进行交流,如何命令对象,...

Global site tag (gtag.js) - Google Analytics