如何使用Java的split方法按多条件分割字符串?无需if语句
当然可以!Java的split()方法本身就支持正则表达式,完全不需要用if语句就能实现多条件分割,用正则的字符类就能轻松搞定你想要的效果。
你提到的类似"\\s || ,"的写法思路是对的,但正则里有更简洁的语法:用方括号[]定义一个字符集合,集合里的任意字符都会被当作分隔符。需要注意的是,.在正则里是匹配任意字符的特殊符号,所以必须用\\.来转义它;而空白字符的正则表示是\\s(能匹配空格、制表符等所有空白类型)。
直接上解决方案代码:
String[] textA = a.split("[\\s,.]");
简单解释:
这个正则表达式[\\s,.]的意思是:匹配空白字符、逗号或者句号中的任意一个,split()会自动在这些字符出现的位置切割字符串,完美满足你的需求。
额外补充(按需选择):
- 如果只想匹配普通空格而非所有空白字符,把
\\s换成空格即可:"[ ,.]" - 如果遇到连续的分隔符(比如
"Hello,, world..")不想生成空字符串,可以在正则后面加+,表示匹配连续的分隔符:
这样连续的空格、逗号、句号会被当作一个分割点,避免数组里出现无用的空元素。String[] textA = a.split("[\\s,.]+");
内容的提问来源于stack exchange,提问作者user7531258
相关产品推荐
相关产品推荐

