使用Java语言编写一个函数,函数功能是可以识别字符串种包含汉字,检测到一个汉字就立即结束,并返回bool类型

使用Java语言编写一个函数,函数功能是可以识别字符串种包含汉字,检测到一个汉字就立即结束,并返回bool类型

以下是改进后的 Java 函数,它会在检测到字符串中第一个汉字时立即返回 true,否则返回 false。这样可以提高效率,避免不必要的遍历。

java

复制

public class ChineseCharacterChecker {

    /**
     * 检查字符串中是否包含汉字,检测到第一个汉字后立即返回 true。
     *
     * @param str 需要检查的字符串
     * @return 如果包含汉字返回 true,否则返回 false
     */
    public static boolean containsChinese(String str) {
        if (str == null || str.isEmpty()) {
            return false;
        }

        for (char c : str.toCharArray()) {
            if (isChinese(c)) {
                return true; // 检测到汉字,立即返回 true
            }
        }
        return false; // 没有检测到汉字
    }

    /**
     * 判断一个字符是否是汉字。
     *
     * @param c 需要判断的字符
     * @return 如果是汉字返回 true,否则返回 false
     */
    private static boolean isChinese(char c) {
        // 汉字的 Unicode 范围是 \u4e00 到 \u9fa5
        return c >= '\u4e00' && c <= '\u9fa5';
    }

    public static void main(String[] args) {
        String testStr1 = "Hello, 世界!";
        String testStr2 = "Hello, World!";
        String testStr3 = "12345";
        String testStr4 = ""; // 空字符串
        String testStr5 = null; // null 字符串

        System.out.println(containsChinese(testStr1)); // 输出: true
        System.out.println(containsChinese(testStr2)); // 输出: false
        System.out.println(containsChinese(testStr3)); // 输出: false
        System.out.println(containsChinese(testStr4)); // 输出: false
        System.out.println(containsChinese(testStr5)); // 输出: false
    }
}

代码说明:

  1. containsChinese(String str):
    • 检查字符串是否为 null 或空字符串,如果是则直接返回 false
    • 遍历字符串中的每个字符,调用 isChinese 方法检查是否为汉字。
    • 如果检测到汉字,立即返回 true,结束函数。
    • 如果遍历结束后没有检测到汉字,返回 false
  2. isChinese(char c):
    • 判断字符是否在汉字的 Unicode 范围内(\u4e00\u9fa5)。
    • 如果是汉字,返回 true,否则返回 false
  3. main 方法:
    • 测试了包含汉字、不包含汉字、空字符串和 null 的情况。

运行结果:

  • "Hello, 世界!" 包含汉字,返回 true
  • "Hello, World!" 不包含汉字,返回 false
  • "12345" 不包含汉字,返回 false
  • 空字符串和 null 字符串返回 false

优化点:

  • 通过立即返回的方式,避免了不必要的遍历,提高了效率。
  • null 和空字符串进行了处理,增强了代码的健壮性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值