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日

相关文章

  • Java中的Calendar日历API用法完全解析

    Java中的Calendar日历API用法完全解析 Calendar类是java.util包中的重要类,它提供了对日期和时间进行操作的各种方法。在Java中,常常使用Calendar类表示和操作日期和时间,而不是使用Date类。 Calendar类中常用的方法 获取日期和时间信息:get() Calendar calendar = Calendar.getI…

    Java 2023年5月20日
    00
  • jsp使用sessionScope获取session案例详解

    当我们在使用JSP进行开发时,经常需要使用到session来存储用户的信息。使用session,能够方便地在多个页面之间共享数据,因此我们需要掌握如何使用session。在本篇攻略中,我们将会使用sessionScope对象来获取session,并带您演示两个简单的使用示例。 什么是session? 在Web开发中,服务器与客户端之间通信使用的是HTTP协议…

    Java 2023年6月15日
    00
  • 常见的排序算法,一篇就够了

    常见的排序算法 排序算法是计算机程序中常见的基本操作之一,它的作用是将一组无序的数据按照某种规则进行排序。在实际的开发中,经常需要对数据进行排序,比如搜索引擎中对搜索结果的排序、电商网站中对商品的排序等。 目前常见的排序算法有多种,下面将对一些常见的排序算法进行介绍: 1. 冒泡排序 冒泡排序是一种简单的排序算法,它重复地遍历要排序的数据,每次比较相邻的两个…

    Java 2023年5月19日
    00
  • 详解SpringBoot封装使用JDBC

    下面我来详细讲解如何在SpringBoot中封装使用JDBC。 1. 使用JDBC操作数据库 1.1 创建数据库 首先,我们需要创建一个数据库来进行操作。假设我们使用MySQL数据库,在MySQL客户端中输入以下命令来创建一个名为“test”的数据库。 CREATE DATABASE IF NOT EXISTS test DEFAULT CHARSET ut…

    Java 2023年5月19日
    00
  • 详解Jvm中时区设置方式

    我来详细讲解一下“详解Jvm中时区设置方式”的完整攻略。 什么是Jvm中的时区 Jvm是一种Java虚拟机,它是运行Java程序的基础。在Java程序中,时间是一个非常重要的概念,因此时区是一个必不可少的因素。Jvm中的时区设置可以控制Java程序使用的时间和日期格式。 Jvm中的时区设置方式 Jvm中的时区设置有三种方式,分别为: 1. 系统默认时区 Jv…

    Java 2023年5月20日
    00
  • java中基本数据类型与Object的关系说明

    Java中基本数据类型与Object的关系说明 在Java中,基本数据类型和Object类型之间存在着一些关系,本文将介绍它们之间的区别和联系。 基本数据类型和对象类型 Java中有8种基本数据类型,它们分别是byte、short、int、long、float、double、char和boolean。而除了基本数据类型之外,其他的都是对象类型。 基本数据类型…

    Java 2023年5月26日
    00
  • Java日志API管理最佳实践详解

    Java日志API是Java开发中非常重要的一个组件,用于记录应用程序运行时的各种事件,这些事件通常包括错误、警告、信息等。在Java应用程序运行时出现问题时,Java日志API能够帮助开发人员快速定位问题并进行调试。 在实践中,我们应该遵循以下的Java日志API管理最佳实践: 1. 使用SLF4J为日志API门面 SLF4J是Java应用程序使用日志AP…

    Java 2023年5月31日
    00
  • JSP开发之Struts2实现下载功能的实例

    我们先来讲一下Struts2实现下载功能的基本路线。一般来说,实现下载功能需要经过以下步骤: 点击下载按钮或链接,请求下载文件 后台调用方法生成文件下载流 将文件下载流写入response中,浏览器开始下载 在Struts2框架中,可以利用这个路线实现下载功能。接下来我们具体讲一下: 准备工作 编写jsp页面提供下载按钮或链接:通过向服务器发送请求,请求下载…

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