在java中拆分字符串首先产生空元素

时间:2018-05-24 09:16:06

标签: java regex split

我试图在“O”的多个或单个出现时分裂刺痛,所有其他角色将是点。我想知道为什么这会首先产生空字符串。

String row = ".....O.O.O"
String[] arr = row.split("\\.+");

这会产生产品:

["", "O", "O", "O"]

3 个答案:

答案 0 :(得分:2)

您只需要确保删除任何尾随或前导点。

所以一个解决方案是:

row.replaceAll("^\\.+|\\.+$", "").split("\\.+");

答案 1 :(得分:1)

对于此模式,您可以使用replaceFirstMethod()然后按点

拆分
String[] arr = row.replaceFirst("\\.+","").split("\\.");

输出

["O","O","O"]

答案 2 :(得分:1)

“+”字符正在删除分隔符的多个实例,因此您的分割实际上是在“。”上拆分以下字符串。

.0.0.0.

这当然意味着你的第一个字段是空的。因此你得到的结果。

要避免这种情况,请在拆分之前从字符串中删除所有前导分隔符。而不是键入一些关于如何执行此操作的示例,这是一个有一些建议的线程。

Java - Trim leading or trailing characters from a string?