我有以下字符串:
String str = "\nHERE\n\nTHERE\n\nEVERYWHERE\n\n";
如果仅打印此内容,它将输出如下内容(当然\n不会“按字面意思”打印):
\n
\n HERE\n \n THERE\n \n EVERYWHERE\n \n \n
调用方法时split("\n"),我想获取新行(\n)字符之间的所有字符串,甚至最后还有空字符串。
split("\n")
例如,如果我今天这样做:
String strArray[] = str.split("\n"); System.out.println("strArray.length - " + strArray.length); for(int i = 0; i < strArray.length; i++) System.out.println("strArray[" + i + "] - \"" + strArray[i] + "\"");
我希望它像这样打印出来(输出A):
strArray.length - 8 strArray[0] - "" strArray[1] - "HERE" strArray[2] - "" strArray[3] - "THERE" strArray[4] - "" strArray[5] - "EVERYWHERE" strArray[6] - "" strArray[7] - ""
当前,它以这种方式打印(输出B),并且所有结尾的空字符串都将被跳过:
strArray.length - 6 strArray[0] - "" strArray[1] - "HERE" strArray[2] - "" strArray[3] - "THERE" strArray[4] - "" strArray[5] - "EVERYWHERE"
如何使split()方法像输出A那样包含空字符串?我当然可以编写多行代码,但是想知道,在我浪费时间尝试实现这一点之前,是否有一个简单的方法或另外两行左右的代码可以帮助我。谢谢!
split()
使用str.split("\n",-1)(带有否定limit参数)。当split给定零或无limit参数时,它将丢弃尾随的空字段,当给定正limit参数时,它将字段的数量限制为该数量,但是 负数 限制表示允许任意数量的字段并且不丢弃尾随的空字段。在此处进行了记录,其行为取自Perl。
str.split("\n",-1)
limit
split