我试图在“O”的多个或单个出现时分裂刺痛,所有其他角色将是点。我想知道为什么这会首先产生空字符串。
String row = ".....O.O.O"
String[] arr = row.split("\\.+");
这会产生产品:
["", "O", "O", "O"]
答案 0 :(得分:2)
您只需要确保删除任何尾随或前导点。
所以一个解决方案是:
row.replaceAll("^\\.+|\\.+$", "").split("\\.+");
答案 1 :(得分:1)
对于此模式,您可以使用replaceFirstMethod()然后按点
拆分String[] arr = row.replaceFirst("\\.+","").split("\\.");
输出
["O","O","O"]
答案 2 :(得分:1)
“+”字符正在删除分隔符的多个实例,因此您的分割实际上是在“。”上拆分以下字符串。
.0.0.0.
这当然意味着你的第一个字段是空的。因此你得到的结果。
要避免这种情况,请在拆分之前从字符串中删除所有前导分隔符。而不是键入一些关于如何执行此操作的示例,这是一个有一些建议的线程。