`

Java精确判断一个字符串是否有中文

    博客分类:
  • Java
阅读更多
public class IsChineseOrNot {  
  
    // GENERAL_PUNCTUATION 判断中文的“号  
    // CJK_SYMBOLS_AND_PUNCTUATION 判断中文的。号  
    // HALFWIDTH_AND_FULLWIDTH_FORMS 判断中文的,号  
    private static final boolean isChinese(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.GENERAL_PUNCTUATION  
                || ub == Character.UnicodeBlock.CJK_SYMBOLS_AND_PUNCTUATION  
                || ub == Character.UnicodeBlock.HALFWIDTH_AND_FULLWIDTH_FORMS) {  
            return true;  
        }  
        return false;  
    }  
  
    public static final boolean isChinese(String strName) {  
        char[] ch = strName.toCharArray();  
        for (int i = 0; i < ch.length; i++) {  
            char c = ch[i];  
            if (isChinese(c)) {  
                return true;  
            }  
        }  
        return false;  
    }  
  
    public static void main(String[] args) {  
        System.out.println(isChinese("き"));  
        System.out.println(isChinese("test,.?!%^&*(){}[]"));  
        System.out.println(isChinese("测试"));  
        System.out.println(isChinese("“测试”,。?!%……&*()——{}【】”"));  
    }  
  
    public static final boolean isChineseCharacter(String chineseStr) {  
        char[] charArray = chineseStr.toCharArray();  
        for (int i = 0; i < charArray.length; i++) {  
            if ((charArray[i] >= 0x4e00) && (charArray[i] <= 0x9fbb)) {  
                return true;  
            }  
        }  
        return false;  
    }  
  
    /** 
     * @deprecated; 弃用。和方法isChineseCharacter比效率太低。 
     * */  
    public static final boolean isChineseCharacter_f2() {  
        String str = "!?";  
        for (int i = 0; i < str.length(); i++) {  
            if (str.substring(i, i + 1).matches("[\\u4e00-\\u9fbb]+")) {  
                return true;  
            }  
        }  
        return false;  
    }  
}  
分享到:
评论

相关推荐

    java 判断汉字 汉字的判断

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

    Java精确截取字符串.doc

    以下是一种常见的解决方法,通过判断字符串中的每个字节来确定是否为中文字符,并据此进行截取: ```java public class StringTrimmer { private String str; private int counterOfDoubleByte; private byte b...

    Java精确截取字符串.pdf

    然而,当处理包含中文字符的字符串时,简单的按字符截取可能会出现问题,因为中文字符通常占用两个字节,而英文字符只占用一个字节。为了实现更精确的截取,可以采用如下的方法: ```java private String str; ...

    java字符串处理-中英文-非常有用的

    - 通过`charAt`方法获取每一个字符,并判断是否为中文字符(ASCII值大于255)。 - 对于中文字符,长度计数增加2;对于英文字符,长度计数增加1。 - 如果达到指定的起始位置或起始位置加1,则记录当前`...

    详解Java判断是否是整数,小数或实数的正则表达式

    在Java中使用正则表达式来判断字符串是否符合整数、小数或实数的格式是一种常见且有效的做法。在编程中,我们经常需要对输入的字符串进行格式验证,以确保它们符合预期的数值格式,尤其是在处理财务数据、用户输入...

    字符串 截取

    根据给定文件的信息,本文将围绕“字符串截取”这一主题进行深入探讨,重点在于如何在Java环境下实现对包含中文字符的字符串进行精确截取,同时确保不会出现半个汉字的情况。 ### 字符串截取的基本概念 在计算机...

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

    ]+") 来判断字符串是否包含中文,需要遍历整个字符串,如果字符串太长效率非常低,而且判断标点还会错误。 为了提高判断的效率和准确性,我们可以使用 Java 中的 Character 类。Character 类提供了 UnicodeBlock ...

    java 字符串间的比较

    Java提供了多种方式来比较字符串,确保我们能精确地判断两个字符串是否相等或按某种顺序排列。下面将详细介绍Java中字符串的比较方法。 1. **`==` 操作符** 在Java中,基础数据类型如int、char可以直接使用`==`来...

    java获取昨天日期字符串的方法

    以下是一个名为`Test`的类,其中包含一个静态方法`getLastDayInfo`,该方法接收一个表示当前日期的字符串参数,并返回昨天的日期字符串: ```java public class Test { /** * 获取昨天的日期字符串 * * @param...

    前后台实现精确截取指定长度字符串(考虑全角半角)

    - 判断字符串长度是否超过目标长度。如果未超过,则直接返回原字符串。 - 如果超过了目标长度,则进一步计算实际字符宽度,并据此确定截取的位置。 - 在循环中,逐个字符判断其是全角还是半角字符,并相应累加宽度值...

    字符串截取(按字节)

    本文将深入探讨一种按字节截取字符串的方法,并通过分析一个具体的Java代码示例来解释其实现原理。 #### 核心概念:Unicode与字节 在讨论字符串按字节截取之前,我们首先需要理解几个基础概念。现代计算机系统中,...

    JAVA 统计字符串中中文,英文,数字,空格,特殊字符的个数

    下面是一个使用 Java 统计字符串中中文、英文、数字、空格、特殊字符的个数的示例代码: ```java package cn.csrc.base.count; public class CountCharacter { public static void main(String[] args) { String...

    比较字符串是否相似.rar

    在编程中,我们可以直接使用`==`运算符(或在某些语言中,如Python,使用`==`或`is`)来判断两个字符串是否相等。 2. **忽略大小写比较**:在某些情况下,我们可能不在乎字符串中的字符是否大写或小写。可以使用...

    字符串,标点符号全角半角转换

    此外,还展示了一个使用Visual Basic的示例,使用`Strings.StrConv`函数来转换字符串的编码格式,如宽字符转换、传统中文转换、简化中文转换等,这在处理多语言环境下的文本时非常有用。 ### 总结 全角与半角字符...

    Java 完美判断中文字符的方法

    在Java编程语言中,判断一个字符串是否包含中文字符通常涉及到对Unicode编码的理解。中文字符主要集中在Unicode的CJK统一汉字区,但简单的Unicode编码区间判断可能会出现不准确的情况,特别是对于中文标点符号等特殊...

    日期类型与字符串的相互转换;判断是否闰年;得到某一周的开始时间及结束时间等等日期处理

    关于闰年的判断,Java提供了`Calendar`类,它是一个抽象基类,可以用来操作日期和时间。以下是如何使用`Calendar`来检查一个年份是否为闰年: ```java int year = 2024; Calendar calendar = Calendar.getInstance...

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

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

    strcmp是C语言中的一个字符串比较函数

    这个函数可以帮助程序员在处理字符串时判断它们是否相等,或者确定一个字符串是否是另一个字符串的子串。下面将详细阐述`strcmp`函数的用法、返回值以及在实际编程中的应用。 ### `strcmp`函数的定义和用法 `...

    字符串工具类

    **功能:** 判断传入的字符串是否为空或长度为零。 **参数:** - `str` - 需要判断的字符串。 **返回值:** - 如果字符串为`null`或其长度小于等于0,则返回`true`;否则返回`false`。 **应用场景:** - 在处理用户...

    java代码-编写一个程序判断字符串是否在另一个字符串

    在Java编程语言中,判断一个...通过这些步骤,你可以理解并执行这个关于判断字符串是否在另一个字符串中的Java程序。了解并熟练掌握这些基础知识对于Java编程至关重要,因为它们构成了许多复杂算法和实用工具的基础。

Global site tag (gtag.js) - Google Analytics