如何拆分保留空元素的字符串?

How to split a string preserving empty elements?

拆分"TEST/TEST/".split("/")时我会得到一个length = 2的字符串数组。

如何将 length = 3 与元素 ["TEST", "TEST", ""] 拆分,从而使最后一个元素为空字符串?

(我想用原生 Java 实现这一点,并且关于性能,因为拆分必须一个接一个地在几百万行上进行)。

您可以使用 split 重载参数化所需数组元素的数量:

String input = "TEST/TEST/";
System.out.println(Arrays.toString(input.split("/", 3)));
// or: input.split("/", -1)

输出

[TEST, TEST, ]

备注

  • 不需要转义正斜杠
  • 您问题的 "performance" 部分有点难以回答,除非您提供更多详细信息
  • 您可能希望对您的过程进行多线程处理。在 Java 7 中,您可以使用 fork/join 框架
  • 正如 Pshemo 指出的那样,您可以使用否定 int 来应用模式...

as many times as possible and the array can have any length.

(来自 API)。