java字符串切分并保留分割符
笔者主要使用的是python语言,偶然使用java发现java无法直接进行字符串切分并保留分割符的功能,特此补充一下:
public class RegSplitDemo {
public static void main(String[] args) {
String str = "cm³哈DD的法国号39340-321=//df?fa";
String pattern = "[a-zA-Z³²]+"; //按照此正则切分字符串
List<String> result = new ArrayList<String>();
Pattern p = Pattern.compile(pattern);
Matcher m = p.matcher(str);
while(m.find()){
result.add(m.group());
}
String regEx = result.stream().collect(Collectors.joining("|"));
System.out.println(Arrays.toString(str.split("((?<="+regEx+")|(?="+regEx+"))")));
}
}