我需要能够按逗号、分号或空格(或三者的混合)拆分输入字符串。我还想将输入中的多个连续定界符视为单个定界符。这是我到目前为止所拥有的:
String regex = "[,;\\s]+";
return input.split(regex);
这是可行的,除了当输入字符串以其中一个定界字符开头时,在这种情况下,结果数组的第一个元素是一个空字符串。我不希望我的结果有空字符串,所以类似“,,,,ZERO; , ;;ONE ,TWO;,” 的结果只返回一个包含大写字符串的三元素数组。
有没有比在调用 String.split 之前删除与我的正则表达式匹配的任何前导字符更好的方法?
提前致谢!
最佳答案
不,没有。您只能通过将 0 作为第二个参数提供给 String 的 split() 方法来忽略尾随分隔符:
return input.split(regex, 0);
但对于前导分隔符,您必须先去除它们:
return input.replaceFirst("^"+regex, "").split(regex, 0);
关于java - String.split() - 在第一个定界符之前匹配前导空字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2732461/