【问题标题】:How to split a string preserving empty elements? [duplicate]如何拆分保留空元素的字符串? [复制]
【发布时间】:2015-05-08 13:58:31
【问题描述】:

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

如何将length = 3 与元素["TEST", "TEST", ""] 分开,因此最后一个元素是空字符串?

(我想使用本机 Java 来实现这一点,并且考虑到性能,因为拆分必须一个接一个地在几百万行上进行)。

【问题讨论】:

  • 根据 Javadoc,如果您不提供限制,它将截断尾随分隔符。

标签: java split


【解决方案1】:

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

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

输出

[TEST, TEST, ]

备注

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

尽可能多次,数组可以有任意长度。

(来自API)。

【讨论】:

  • 或者干脆使用负数限制split(delimiterRegex, -1)
  • @Pshemo 不错!将添加到答案中。
  • @Pshemo 太好了,这可能是我问题的最佳解决方案。
猜你喜欢
  • 2019-10-03
  • 1970-01-01
  • 1970-01-01
  • 2019-11-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-09-13
相关资源
最近更新 更多