可以使用正则表达式来实现这个需求。可以使用[^\u4e00-\u9fa5]来匹配非汉字字符,然后使用replaceAll方法将汉字及其后面的字符替换为空字符串。

下面是一个示例代码:

public class Main {
    public static void main(String[] args) {
        String str = 'abc汉字def';
        String result = str.replaceAll('[^\u4e00-\u9fa5].*$', '');
        System.out.println(result);
    }
}

输出结果为:abc

解释一下正则表达式的含义:

  • [^\u4e00-\u9fa5]表示匹配非汉字字符。
  • .*$表示匹配任意字符直到行尾。

所以,[^\u4e00-\u9fa5].*$表示匹配非汉字字符及其后面的所有字符。然后使用replaceAll方法将匹配到的部分替换为空字符串。

如果没有汉字字符,replaceAll方法不会做任何替换,直接输出原字符串。

Java 字符串截取:获取汉字前所有字符

原文地址: https://www.cveoy.top/t/topic/qmSw 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录