1、split方法中使用了正则表达式,比如
"aaa|bbb|ccc"
转义的时候就需要split(\|),在转义字符比较少的时候这没什么,但是如果类似下面的
"ds\\|'\'\t\d"
这种复杂的字符串对于正则表达式不熟悉的人就比较困难了。
有没有不支持正则表达式的方法,或者能解决这种问题的办法(当然学好正则表达式是一种好方法O(∩_∩)O)。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
先转义一遍吧
s.split(Pattern.quote(separator));
update: 关于为啥能实现转义
关键在于Java自定义的
quote方法类似返回了
"\\Q" + s + "\\E";
(当然还有一些其他的情况(如待转义的字符串本身就有\E
之类的),但是这个是最根本的情况)不使用正则的话只能手动拆分,给你一个刚出炉热乎乎的方法。
PS:里面判断没有非常严格,可能有BUG,可以自己修复