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

Java 判断字符串中是否包含中文的实例详解”可以使用正则表达式来实现,具体步骤如下:

1. 使用正则表达式匹配中文字符

首先,我们可以使用正则表达式来匹配中文字符。因为中文字符的 unicode 编码范围为 [\u4e00-\u9fa5],所以我们可以使用正则表达式 [\u4e00-\u9fa5] 来匹配中文字符。具体实现代码如下:

public static boolean isContainChinese(String str) {
    Pattern pattern = Pattern.compile("[\u4e00-\u9fa5]");
    Matcher matcher = pattern.matcher(str);
    return matcher.find();
}

这个方法接收一个字符串参数 str,通过 Pattern.compile() 方法编译一个正则表达式 [\u4e00-\u9fa5],然后通过 Matcher.find() 方法来查找是否在给定的字符串中存在中文字符。如果存在,则返回 true,否则返回 false。

2. 遍历字符串判断每个字符是否为中文字符

除了使用正则表达式,我们还可以遍历字符串的每个字符,判断每个字符是否为中文字符。具体实现代码如下:

public static boolean isContainChinese(String str) {
    for (int i = 0; i < str.length(); i++) {
        char c = str.charAt(i);
        if (isChinese(c)) {
            return true;
        }
    }
    return false;
}

public static boolean isChinese(char c) {
    Character.UnicodeBlock unicodeBlock = Character.UnicodeBlock.of(c);
    return unicodeBlock == Character.UnicodeBlock.CJK_UNIFIED_IDEOGRAPHS
            || unicodeBlock == Character.UnicodeBlock.CJK_COMPATIBILITY_IDEOGRAPHS
            || unicodeBlock == Character.UnicodeBlock.CJK_UNIFIED_IDEOGRAPHS_EXTENSION_A
            || unicodeBlock == Character.UnicodeBlock.GENERAL_PUNCTUATION
            || unicodeBlock == Character.UnicodeBlock.CJK_SYMBOLS_AND_PUNCTUATION
            || unicodeBlock == Character.UnicodeBlock.HALFWIDTH_AND_FULLWIDTH_FORMS;
}

这个方法同样接收一个字符串参数 str,遍历字符串的每个字符,然后使用方法 isChinese(char c) 来判断每个字符是否为中文字符。在这个方法中,我们使用 Character.UnicodeBlock 来判断一个字符是否为中文字符。具体来说,如果一个字符的 UnicodeBlock 属于以下六种之一,则认为它是中文字符:

  • CJK_UNIFIED_IDEOGRAPHS: 常用汉字的 UnicodeBlock
  • CJK_COMPATIBILITY_IDEOGRAPHS: 兼容汉字的 UnicodeBlock
  • CJK_UNIFIED_IDEOGRAPHS_EXTENSION_A: 扩展汉字的 UnicodeBlock
  • GENERAL_PUNCTUATION: 常用的标点符号的 UnicodeBlock
  • CJK_SYMBOLS_AND_PUNCTUATION: 中文的符号标点的 UnicodeBlock
  • HALFWIDTH_AND_FULLWIDTH_FORMS: 半角和全角字符的 UnicodeBlock

示例一:使用正则表达式判断

将上述 isContainChinese() 方法和以下测试代码放在同一个.java文件中:

public static void main(String[] args) {
    String str1 = "Hello, 世界!";
    String str2 = "Hello, world!";
    System.out.println(String.format("%s 中包含中文字符:%b", str1, isContainChinese(str1)));
    System.out.println(String.format("%s 中包含中文字符:%b", str2, isContainChinese(str2)));
}

运行测试代码,控制台输出结果为:

Hello, 世界! 中包含中文字符:true
Hello, world! 中包含中文字符:false

可以看到,使用正则表达式的方法可以准确地判断字符串中是否包含中文字符。

示例二:使用字符遍历判断

将上述 isContainChinese() 方法和 isChinese(char c) 方法和以下测试代码放在同一个.java文件中:

public static void main(String[] args) {
    String str1 = "Hello, 世界!";
    String str2 = "Hello, world!";
    System.out.println(String.format("%s 中包含中文字符:%b", str1, isContainChinese(str1)));
    System.out.println(String.format("%s 中包含中文字符:%b", str2, isContainChinese(str2)));
}

运行测试代码,控制台输出结果为:

Hello, 世界! 中包含中文字符:true
Hello, world! 中包含中文字符:false

可以看到,使用字符遍历的方法同样可以准确地判断字符串中是否包含中文字符。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Java 判断字符串中是否包含中文的实例详解 - Python技术站

(0)
上一篇 2023年5月20日
下一篇 2023年5月20日

相关文章

  • JavaScript检测浏览器是否支持CSS变量代码实例

    JavaScript检测浏览器是否支持CSS变量是一个非常重要的功能。在网站开发中,有时我们需要使用一些比较新的CSS特性,而这些特性并不一定被所有的浏览器都支持。因此,在使用新特性之前,我们需要检测一下浏览器是否支持它们,以免在不支持的浏览器中导致页面出现问题。 以下是JavaScript检测浏览器是否支持CSS变量的完整攻略: 步骤 1: 检测浏览器是否…

    Java 2023年6月15日
    00
  • Java如何判断整数溢出,溢出后怎么得到提示

    Java中整数类型(int, long等)变量的范围是有限的,当一个变量的数值超出了它的范围时,就会发生整数溢出。溢出的结果与数值运算的结果不同,可能导致程序运行异常,所以我们需要在程序中判断整数是否溢出,并得到提示以确保程序的正确性。 判断整数溢出的方法是通过与最值的比较来实现的。以int类型的整数为例,最大值为2^31-1(即2147483647),最小…

    Java 2023年5月25日
    00
  • Java语言面向对象编程思想之类与对象实例详解

    Java面向对象编程思想之类与对象实例详解 在Java中,所有的事物都是对象,对象都有其自身的特征和行为。因此,Java是一种面向对象的语言。在Java中,类和实例是很重要的概念,我们需要对其进行深入的学习和理解。 类和对象 类是一种模板或蓝图,可以用来创建对象。具有相同属性和行为的对象,可以归纳为同一个类。对象则是类的一个实例,可以根据类来创建多个对象。 …

    Java 2023年5月26日
    00
  • Java使用正则表达式对注册页面进行验证功能实现

    Java使用正则表达式对注册页面进行验证功能实现的攻略需要分为以下几个步骤: 定义需要验证的表单字段 在进行验证前,需要先确定需要验证的表单字段。一般来说,注册页面需要验证的字段包括用户名、密码、邮箱等。 编写正则表达式 根据需要验证的表单字段,编写相应的正则表达式。正则表达式用于匹配输入字符串,检查其是否符合规定的格式要求。 例如,对于用户名,常用的验证规…

    Java 2023年6月15日
    00
  • SpringBoot在项目中访问静态资源步骤分析

    Spring Boot在项目中访问静态资源步骤分析 在Spring Boot应用程序中,我们经常需要访问静态资源,如图片、CSS、JavaScript等。为了实现这些功能,我们需要在Spring Boot应用程序中配置静态资源的访问路径。在本文中,我们将详细介绍如何在Spring Boot应用程序中访问静态资源,并提供两个示例说明。 步骤分析 在Spring…

    Java 2023年5月18日
    00
  • JavaWeb后台购物车类实现代码详解

    下面为大家详细讲解“JavaWeb后台购物车类实现代码详解”的完整攻略。 一、前置知识 在学习本文之前,您需要了解以下知识点: JavaWeb基础知识,例如Servlet、JSP等; Java基础知识,例如面向对象编程、集合等; HTML、CSS、JavaScript等前端知识。 二、购物车的实现 购物车的实现可以借助实现了Session接口的HttpSes…

    Java 2023年5月23日
    00
  • SpringBoot配置文件加载方法详细讲解

    SpringBoot配置文件加载方法详细讲解 在SpringBoot中,我们可以使用配置文件来配置应用程序的属性。本文将详细讲解SpringBoot配置文件加载方法的完整攻略,并提供两个示例。 1. 配置文件的加载顺序 在SpringBoot中,配置文件的加载顺序如下: 在classpath根目录下,查找名为application.properties或ap…

    Java 2023年5月15日
    00
  • Java详细讲解分析双指针法的使用

    Java详细讲解分析双指针法的使用 双指针法是一种常见的解决数组或链表中遍历查找的算法。其核心思想是使用两个指针,分别从不同的方向或位置同时开始遍历数组或链表,通过相对移动指针位置来达到某种目的。本文将为你详细讲解Java中如何使用双指针法。 双指针法的种类 双指针法有多种不同的应用场景。下面列举了常见的几种种类: 快慢指针法:用于解决一些链表中的问题,例如…

    Java 2023年5月26日
    00
合作推广
合作推广
分享本页
返回顶部