`

java中文判断

    博客分类:
  • java
阅读更多
Java代码 复制代码
  1. public boolean vd(String str){   
  2.      
  3.     char[] chars=str.toCharArray();    
  4.     boolean isGB2312=false;    
  5.     for(int i=0;i<chars.length;i++){   
  6.                 byte[] bytes=(""+chars[i]).getBytes();    
  7.                 if(bytes.length==2){    
  8.                             int[] ints=new int[2];    
  9.                             ints[0]=bytes[0]& 0xff;    
  10.                             ints[1]=bytes[1]& 0xff;    
  11.                             if(ints[0]>=0x81 && ints[0]<=0xFE && ints[1]>=0x40 && ints[1]<=0xFE){    
  12.                                         isGB2312=true;    
  13.                                         break;    
  14.                             }    
  15.                 }    
  16.     }    
  17.     return isGB2312;    
  18. }  
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代码 复制代码
  1. public boolean isNumeric(String str)   
  2. {   
  3.        Pattern pattern = Pattern.compile(”[0-9]*”);   
  4.        Matcher isNum = pattern.matcher(str);   
  5.        if( !isNum.matches() ) {   
  6.           return false;   
  7.        }   
  8.        return true;   
  9. }   
  10.   
  11. 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代码 复制代码
  1. public static void main(String[] args) {       
  2.         int count = 0;       
  3.          String regEx = "[\\u4e00-\\u9fa5]";       
  4.         //System.out.println(regEx);       
  5.          String str = "中文fdas ";       
  6.         //System.out.println(str);       
  7.          Pattern p = Pattern.compile(regEx);       
  8.          Matcher m = p.matcher(str);       
  9.         while (m.find()) {       
  10.             for (int i = 0; i <= m.groupCount(); i++) {       
  11.                  count = count + 1;       
  12.              }       
  13.          }       
  14.          System.out.println("共有 " + count + "个 ");       
  15.      }     
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代码 复制代码
  1. String s1 = "我是中国人";   
  2. String s2 = "imchinese";   
  3. String s3 = "im中国人";   
  4. System.out.println(s1+":"+new String(s1).length());   
  5. System.out.println(s2+":"+new String(s2).length());    
  6. 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代码 复制代码
  1. System.out.println((s1.getBytes().length == s1.length())?"s1无汉字":"s1有汉字");   
  2. System.out.println((s2.getBytes().length == s2.length())?"s2无汉字":"s2有汉字");   
  3. 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个汉字(是不是少了点,算算你能认识多少)

分享到:
评论

相关推荐

    java 判断汉字 汉字的判断

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

    java 字符串中文判断

    本文将深入探讨如何在Java中进行中文字符的判断和计数,这主要基于Java的Unicode编码特性以及字符集的理解。 首先,我们需要理解Java中的字符类型`char`。在Java中,一个`char`类型的变量可以存储一个Unicode字符,...

    java 判断中英文

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

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

    ### Java正则表达式判断字符串是否包含中文 在日常的软件开发过程中,我们经常会遇到需要对输入的字符串进行校验的情况。例如,在处理用户输入、文本分析或数据清洗时,可能需要判断一个字符串中是否包含中文字符。...

    java 判断字符串是否是中文

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

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

    这里我们将详细探讨如何使用Scala和Java来实现简体与繁体中文的互换以及判断文字是简体还是繁体。 首先,让我们了解简体和繁体中文的区别。简体中文是20世纪50年代以来在中国大陆广泛使用的标准化汉字形式,特点是...

    Java判断文件的编码

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

    回文判断 JAVA实现

    在本项目中,我们使用Java编程语言,通过递归的方式实现了一个具有图形用户界面(GUI)的回文判断程序。下面将详细介绍这个项目中的关键知识点。 1. **Java基础**:首先,我们需要了解Java的基本语法,包括变量声明...

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

    这个表达式利用Unicode范围来匹配中文字符,`[\u4e00-\u9fa5]`表示所有常用汉字的Unicode编码范围。 ### 6. HTML空白符验证 `checkBlank`方法用于检查字符串是否仅包含空白字符,如空格、制表符等,其正则表达式为...

    Java汉字转拼音(支持多音字)

    在Java编程语言中,将汉字转换为拼音是一项常见的任务,特别是在处理中文文本、搜索引擎优化、语音合成或自然语言处理等领域。这个"Java汉字转拼音(支持多音字)"的主题涉及了如何在Java环境中实现这一功能,特别是...

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

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

    计算汉字笔画数java实现

    根据提供的文件信息,本文将详细解析如何通过Java编程语言实现计算汉字笔画数的方法,并对代码中的关键逻辑进行深入分析。 ### 概述 在Java中实现计算汉字笔画数的功能,主要涉及到对汉字编码的理解以及如何根据...

    js java 判断中文,英文的混合长度

    根据给定文件的信息,本文将围绕“JS与Java中判断字符串中文、英文混合长度的方法”这一主题进行深入探讨。文章将分别介绍JavaScript和Java中如何处理包含中文字符和英文字符的混合字符串,并计算其等效长度。 ### ...

    java中汉字得到首字母大写

    ### Java中实现汉字首字母转为大写的技巧与方法 #### 概述 在Java编程中,有时我们需要处理中文字符,并将其转换成特定格式。例如,我们可能希望将一个中文姓名转换成其拼音首字母的大写形式。这种需求在很多场景...

    Java中判断字符串是中文或者英文的工具类分享

    【Java 判断字符串中文英文工具类】 在Java编程中,有时我们需要判断一个字符串中的字符是否为中文或英文。为了实现这个功能,我们可以创建一个工具类,利用Java的`Character`类和正则表达式进行判断。以下是一个...

    java将汉字转为拼音

    在Java编程语言中,将汉字转换为对应的汉语拼音是一项常见的需求,特别是在文本处理、搜索功能或者国际化应用中。为了实现这个功能,Java提供了一些库和API可以利用。本篇文章将详细探讨如何在Java中实现汉字转拼音...

    JAVA日文字符检查

    根据给定文件的信息,我们可以总结出以下几个主要的知识点: ### 1.... ... - `&` 转换为 `&amp;` - `转换为 `&lt;...### 2....在实际应用中,这些方法通常会被封装成工具类的一部分,并广泛应用于前端表单验证、后端数据校验...

    java中判断否为汉字.doc

    在Java编程语言中,判断一个字符串是否包含汉字是一项常见的任务,尤其在处理多语言文本时。上述代码提供了几种不同的方法来实现这个功能。下面将详细解释这些方法。 1. 判断字符串是否为GB2312编码的汉字: 在...

    java判断试题.pdf

    ### Java判断题知识点详解 #### 1. JSP 包含指令 (`&lt;jsp:include&gt;`) **知识点**: `&lt;jsp:include&gt;` 指令在 JSP 文件中的作用是在编译时将其他 JSP 文件的内容合并到当前 JSP 文件中。 **解析**: 正确。`...

    java提取汉字首字母

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

Global site tag (gtag.js) - Google Analytics