字符串拆分不返回空结果

Mar*_*nio 8 java string

我正在尝试使用

"value1:value2::value3".split(":");
Run Code Online (Sandbox Code Playgroud)

问题是我希望它包含空白结果.

它返回:[value1, value2, value3]
它应该是:[value1, value2, , value3]

有谁知道regexp来解决这个问题?

好的,我找到了问题原因.我实际上正在阅读一个文本文件,它包含以下行:

123:;~\&:ST02:M:test:M:4540145::type;12:51253:D:2.2:567766::AL:::::::2.2b
Run Code Online (Sandbox Code Playgroud)

当我处理这一行读取文本文件时,它会产生上面提到的错误结果,在这种情况下它不包含任何空结果::::::.

但是当我在测试程序中使用上面的行时,它不会编译,我得到一个"无效的转义序列".我认为这是因为"\&".

使用正则表达式是否有解决此问题的方法?

cas*_*nca 19

split确实在结果中包含空匹配,请查看此处文档.但是,默认情况下,将丢弃尾随空字符串(数组末尾的字符串).如果你想包括这些,请尝试split(":", -1).