Java 字符串截取:获取汉字前所有字符
可以使用正则表达式来实现这个需求。可以使用[^\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方法不会做任何替换,直接输出原字符串。
原文地址: https://www.cveoy.top/t/topic/qmSw 著作权归作者所有。请勿转载和采集!