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

yizhihongxing

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开发之Jdbc分页源码详解

    首先,我们需要了解JDBC分页的概念,它可以帮助我们在处理大量数据时,避免一次性获取过多的数据,从而提高程序的性能。 下面是一个基于JDBC的分页实现的示例代码,供您参考: import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement;…

    Java 2023年6月16日
    00
  • Java实现矩阵乘法以及优化的方法实例

    Java实现矩阵乘法以及优化的方法实例 背景 矩阵乘法是线性代数中的基本操作,具体实现方法是将两个矩阵进行乘法运算,得到一个新的矩阵。在Java中,我们可以使用循环遍历的方式逐个计算矩阵元素,但是这样效率较低,需要使用优化算法来提高计算速度。 算法介绍 基本矩阵乘法 假设有两个矩阵A(mn),B(np),结果矩阵C(m*p),它们的乘法运算式如下所示: $C…

    Java 2023年5月19日
    00
  • 什么是 JVM 性能分析工具?

    以下是关于 JVM 性能分析工具的完整使用攻略: 什么是 JVM 性能分析工具? JVM 性能分析工具是用来分析 Java 程序在 JVM 上的性能表现的工具。通过使用 JVM 性能分析工具,可以找出程序中的性能瓶颈,优化程序的性能,提高程序的运行效率。 常见的 JVM 性能分析工具包括以下几种: 1. JConsole JConsole 是 JDK 自带的…

    Java 2023年5月12日
    00
  • java环境变量的配置方法图文详解【win10环境为例】

    Java环境变量的配置方法图文详解(Win10环境为例) Java编程利用JDK和JRE提供的库来开发和运行Java程序。在安装Java后,要配置Java环境变量,才能在命令行模式下运行Java程序。 下面是Java环境变量在Win10环境下的配置方法: 1. 下载JDK 首先,从官网上下载对应平台的JDK安装包。 示例说明:下载JDK8u291 Windo…

    Java 2023年5月23日
    00
  • 【经典】一位数据挖掘成功人士给数据挖掘在读研究生的建议

    我将为您详细讲解“【经典】一位数据挖掘成功人士给数据挖掘在读研究生的建议”的完整攻略。 1. 文章介绍 该文章通过访问一位成功的数据挖掘专家,分享了一些数据挖掘在读研究生应该具备的知识和技巧,以及在当前数据挖掘领域的趋势和机会。该文章对于正在学习数据挖掘的学生有着重要的参考价值。 2. 数据挖掘研究生的必备技能 在文章中,该数据挖掘专家分享了一些数据挖掘研究…

    Java 2023年5月19日
    00
  • java中VO的使用解析

    Java中VO的使用解析 引言 Java中的VO是指Value Object,即值对象,是为业务需要而创建的对象。它是Java中的一种设计模式,用来处理业务逻辑中的数据,封装对数据的访问和操作。VO通常不关心业务逻辑,只关心数据,一般包含有属性和属性的访问方法。因为它是与业务逻辑无关的,所以VO通常被认为是轻量级的,仅包含数据。 在Java中,VO被广泛应用…

    Java 2023年5月20日
    00
  • mybatis and,or复合查询操作

    下面是关于 Mybatis 中 AND 和 OR 复合查询操作的完整攻略。 基础知识 在 Mybatis 中,我们可以使用 <where> 元素来构造复杂的条件语句,其中包含了 AND 和 OR 连接符。如下所示: <select id="selectByExample" resultMap="BaseResu…

    Java 2023年5月20日
    00
  • Spring Security中防护CSRF功能详解

    Spring Security中防护CSRF功能详解 Cross-Site Request Forgery(CSRF)攻击是一种网络安全攻击,攻击者通过伪造用户身份信息来完成一些非法操作。Spring Security使用一些策略来保护应用程序免受CSRF攻击。本文将介绍Spring Security防护CSRF功能的全过程,包括配置和示例。 配置 配置Sp…

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