关键词

Java 判断字符为中文实例代码(超管用)

标题:Java 判断字符为中文实例代码(超管用)攻略

介绍:在Java开发中,有时候需要判断字符是不是中文,本文将详细讲解Java判断字符为中文的实例代码,希望对大家有所帮助。

  1. 使用正则表达式判断字符是否为汉字

在Java中,我们可以使用正则表达式来判断字符是否为汉字。我们可以通过Unicode编码范围来表示中文字符,具体方法如下:

public static boolean isChineseByRegEx(char c) {
    return String.valueOf(c).matches("[\u4e00-\u9fa5]");
}

通过该方法,我们可以判断传入的字符c是否为中文字符,返回true或false。

示例代码:

// 判断中文字符和英文字符的方法, 返回true or false
public static void main(String[] args) {
    char[] charArr = new char[]{'你', '好', 'a', 'b', 'c'};
    for (char c : charArr) {
        System.out.println(c + ":" + isChineseByRegEx(c));
    }
}

输出结果:

你:true
好:true
a:false
b:false
c:false
  1. 使用Character.UnicodeBlock判断字符是否为汉字

除了使用正则表达式,我们还可以使用Java提供的Character类中的UnicodeBlock类来判断字符是否为汉字。

UnicodeBlock类定义了Unicode字符集中的块。每个块都包含一组字符。我们可以使用Character类的方法getUnicodeBlock()获取指定字符所在的Unicode块。

Java中常用的汉字编码块是“汉字常用区: U+4E00 - U+9FFF”,我们可以通过判断字符是否位于该块中来判断其是否为中文字符。

示例代码:

public static boolean isChineseByUnicode(char c) {
    Character.UnicodeBlock ub = Character.UnicodeBlock.of(c);
    if (ub == Character.UnicodeBlock.CJK_UNIFIED_IDEOGRAPHS
            || ub == Character.UnicodeBlock.CJK_COMPATIBILITY_IDEOGRAPHS
            || ub == Character.UnicodeBlock.CJK_UNIFIED_IDEOGRAPHS_EXTENSION_A
            || ub == Character.UnicodeBlock.CJK_UNIFIED_IDEOGRAPHS_EXTENSION_B
            || ub == Character.UnicodeBlock.CJK_SYMBOLS_AND_PUNCTUATION
            || ub == Character.UnicodeBlock.HALFWIDTH_AND_FULLWIDTH_FORMS
            || ub == Character.UnicodeBlock.GENERAL_PUNCTUATION) {
        return true;
    }
    return false;
}

通过该方法,我们可以判断传入的字符c是否为中文字符,返回true或false。

示例代码:

// 判断中文字符和英文字符的方法, 返回true or false
public static void main(String[] args) {
    char[] charArr = new char[]{'你', '好', 'a', 'b', 'c'};
    for (char c : charArr) {
        System.out.println(c + ":" + isChineseByUnicode(c));
    }
}

输出结果:

你:true
好:true
a:false
b:false
c:false

总结:在Java中,我们我们可以使用正则表达式或Character类中的UnicodeBlock类来判断字符是否为中文。以上两种方法多用于汉字输入时的验证与限制。

本文链接:http://task.lmcjl.com/news/13130.html

展开阅读全文