`

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; 
}





首先要import java.util.regex.Pattern 和 java.util.regex.Matcher
这两个包,接下来是代码

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 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() ,看下面例子,
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珠海 兄的提示由以下解决方法,就是判断字符串的长度和字符字节的长度是否相同来判断是否有双字节的字符
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个汉字(是不是少了点,算算你能认识多少)
分享到:
评论
1 楼 daxun1983 2012-03-01  
爱得发疯

相关推荐

    java 判断汉字 汉字的判断

    ### Java判断字符串是否包含汉字的方法 在开发过程中,有时我们需要判断一个字符串是否包含汉字,并根据判断的结果执行不同的逻辑。这通常出现在需要处理多语言输入的情况下,例如用户输入验证、文本分析等场景。...

    java 判断字符串是否是中文

    java 判断字符串是否是中文 共总结了6种方法。。。。

    scala java 简体、繁体互转换,判断是否为简体、繁体

    总的来说,无论是Scala还是Java,都有多种方法来处理简体和繁体中文的转换与识别。选择哪种方法取决于具体的需求,包括性能、准确性和项目依赖等因素。对于大型项目,建议使用稳定的第三方库,因为它们通常经过充分...

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

    通过本文的学习,我们不仅了解了如何使用 Java 的正则表达式来判断一个字符串中是否包含中文字符,还深入了解了 Java 中正则表达式的相关 API 和基本原理。这对于从事 Java 开发的技术人员来说是非常实用且必要的...

    java 字符串中文判断

    至于判断字符串中是否有连续的中文字符,我们可以稍微修改上述代码,添加一个额外的条件来检查当前字符和下一个字符是否都是中文。这里是一个可能的实现: ```java public static boolean hasConsecutiveChinese...

    java 判断是否有中文,以及它的位置

    在Java编程语言中,判断一个字符串是否包含中文字符并找到这些字符的位置是一项常见的任务。这在处理中文数据、文本分析或者进行国际化应用时尤为关键。本文将详细介绍如何使用Java实现这个功能。 首先,我们需要...

    正则表达式 Java 判断字串是否合理

    `checkChineseName`方法用于验证是否为有效的中文姓名,正则表达式为: ```java "^[\u4e00-\u9fa5]+$" ``` 这个表达式利用Unicode范围来匹配中文字符,`[\u4e00-\u9fa5]`表示所有常用汉字的Unicode编码范围。 ### 6...

    Java编写的非常有用的方法,文字中提取中文字符

    为了方便你直接使用这些功能,你可以将以上代码保存到名为`Java取得字符串中汉字字符串.java`和`判断是否为空白字符串.java`的两个Java文件中。在你的项目中导入并使用这些类,它们将帮助你有效地处理字符串中的汉字...

    java 判断中英文

    在Java编程语言中,判断一个字符串是否包含中文字符或英文字符是常见的需求,这主要涉及到字符编码和字符串处理的知识。本文将深入探讨如何利用Java进行这样的判断。 首先,我们需要了解字符编码的基础。在计算机中...

    java中判断否为汉字.doc

    总结来说,Java中判断字符串是否包含汉字有多种方式,可以根据实际需求选择合适的方法。第一种方法适用于GB2312编码的字符串,而第二种和第三种方法则更通用,能识别Unicode编码的汉字。了解这些方法有助于编写更...

    如何运用java来校验一段字符串是否为汉字.txt

    ### Java判断字符串是否为汉字的方法 #### 理解GB2312编码 GB2312是一种中文字符编码标准,主要在中国大陆使用。它包含了6763个汉字和682个其他图形符号,是最早被广泛接受的中文编码之一。GB2312中的汉字编码范围...

    计算汉字笔画数java实现

    这部分的核心逻辑封装在`getStrokeCount`方法中,该方法有两重重载形式:一个接收单个字符参数,另一个接收两个整数参数表示汉字的高字节和低字节。 #### 3. GB2312编码与笔画数映射 为了准确地获取每个汉字的笔画...

    Java判断文件的编码

    ### Java判断文件编码的方法 在Java开发中,经常会遇到需要处理不同编码格式的文件的情况。为了确保程序能够正确解析文件内容,必须先判断文件的编码格式。本文将详细介绍如何使用Java来判断文件是否为UTF-8或GBK...

    java提取汉字首字母

    - 处理多音字:有些汉字有多个读音,需要根据上下文判断正确的拼音。 - 非汉字字符:处理文本时,可能遇到标点符号、数字和其他非汉字字符,需要正确处理它们。 总之,Java提取汉字首字母是一个涉及字符编码、...

    JAVA日文字符检查

    - **功能**: 检查输入字符串是否表示一个合法的小数(包括整数部分和小数部分)。 - **参数**: - `input`: 需要检查的字符串。 - `upper`: 整数部分的最大位数。 - `lower`: 小数部分的最大位数。 - `minus`: ...

    Java判断字符串中是否包含中文方法

    首先,了解Unicode编码对于掌握判断字符串中是否包含中文的方法至关重要。Unicode为世界上几乎所有的字符都提供了唯一的编码。对于中文字符,Unicode定义了从\u4e00到\u9fa5范围内的字符集,这个范围覆盖了大部分...

    java中截取带汉字的字符串

    ### Java中截取带汉字的字符串 在Java编程语言中,处理包含中文字符的字符串时,经常遇到的一个问题是如何正确地截取这些字符串。如果直接按照字节(byte)来进行分割,很容易导致中文字符被截断一半,从而形成乱码。...

    java将汉字转为拼音

    if (Character.toString(c).matches("[\\u4e00-\\u9fa5]+")) { // 判断是否为汉字 String[] pinyinArray = PinyinHelper.toHanyuPinyinStringArray(c); if (pinyinArray != null && pinyinArray.length &gt; 0) { ...

Global site tag (gtag.js) - Google Analytics