有一种简单的方法可以强制String.split()返回带有空字符串元素的数组吗?

时间:2013-02-12 23:11:44

标签: java regex arrays string split

在C#中我可以使用StringSplitOption.None枚举元素来指定我希望在结果数组中包含空字符串:

String[] s = text.Split(new String[] { "\r\n" }, StringSplitOptions.None);

在java中,我可以执行以下操作:

 String[] s= text.split("\r\n");

但是,split方法不返回空字符串。 (所以如果text =“a \ r \ n \ n \ n \ n \ n \ n \ n”,我想得到{a,b,“”},而不是{a,b})。

有没有一种简单的方法可以通过正则表达式或使用其他方法来实现这一目标?

2 个答案:

答案 0 :(得分:4)

您可以使用-1作为String#split限制:

System.out.println(Arrays.toString("a\r\nb\r\n".split("\\r\\n", -1)));

答案 1 :(得分:1)

使用番石榴Splitter。通常在工作方式上更合乎逻辑。

import com.google.common.base.Splitter;
...
System.err.println(Splitter.on("\r\n").split("a\r\nb\r\n"));