byte [] array = str.getBytes()//str是你要判断的字符
if(array.length==2){
//是中文
}

解决方案 »

  1.   

    static public String isChinese(String chinese) {
    String ucode = "";
    String strChinese = "";
    String strASC = "";
    try {
    int clen;
    clen = chinese.length(); //取字符串长度
    String utemp = "";
    char[] strBuffer = chinese.toCharArray(); //将字符串转化为字符数组
    int l; //每个字符转换后的二进制字符串的长度
    int s; for (int i = 0; i < clen; i++) {
    s = (int) strBuffer[i]; //取一个字符
    utemp = Integer.toHexString(s).toUpperCase();
    l = utemp.length();
    if (l <= 2) { //如果是ASC字符
    utemp = "00" + utemp;
    //保存ASC字符到strASC
    strASC += chinese.substring(i,i+1);
    }else{
    //保存中文字符到strChinese
    strChinese += chinese.substring(i,i+1);
    }
    ucode = ucode + utemp;
    }
    System.err.println(strASC);
    System.err.println(strChinese);
    }
    catch (Exception e) {
    e.printStackTrace();
    }
    return strChinese;}
      

  2.   

    boolean isChineseCode(char c){
    return ((c>='\u4E00')||(c<='\u9FA5'));//中文的范围是:\u4E00-\u9FA5}
      

  3.   

    写错了
    boolean isChineseCode(char c){
    return ((c>='\u4E00')&&(c<='\u9FA5'));//中文的范围是:\u4E00-\u9FA5}
      

  4.   

    java采用的是unicode编码,这种编码把编码空间分了很多块,每块里面分配给一类字符。你只要判断出某个编码位于中文块中它就是中文,位于阿拉伯文块中它就是阿拉伯文。具体的unicode编码块分布楼主可以自行查阅Character&UnicodeBlock的源代码,其中有一个静态常量blockStarts就存放了每个块开始的位置。不过你要找中文的块是找不到的,因为在unicode中没有中文块,只有中日韩三国联合编码块。明明是汉字,给小日本用了就不叫汉字了,可见中国在计算机界的发言权远远不如小日本啊。楼上给出的((c>='\u4E00')&&(c<='\u9FA5'))范围就是CJK Unified Ideographs的范围。
      

  5.   

    参见
    http://blog.csdn.net/westwin/archive/2005/01/14/isgb2312.aspx