如何在String.split()中允许空字符串?

Bar*_*chs 6 java string split

String.split()用来分割一个字符串.我收到的字符串有这样的结构:

[data]<US>[data]<US>
Run Code Online (Sandbox Code Playgroud)

<US>ASCII单元分隔符在哪里(代码0x1F).要拆分的代码是

String[] fields = someString.split(String.valueOf(0x1f));
Run Code Online (Sandbox Code Playgroud)

这工作正常,除非[DATA]是一个空字符串.在这种情况下,数据就会被跳过.

我想一个字符串喜欢[DATA]<US><US>[DATA]<US>与三个元素返回数组:[DATA],null[DATA].

我怎样才能做到这一点?

Men*_*ena 9

如果你的参数化split-1作为第二个参数,你会得到一个空的String地方[data]缺少(但不null).

someString.split(String.valueOf(0x1f), -1);
Run Code Online (Sandbox Code Playgroud)

来自文档的解释

如果n是非正数,那么模式将被应用尽可能多的次数,并且数组可以具有任何长度.

..其中n是限制,即第二个参数.