我有以下字符串:
String str = "\nHERE\n\nTHERE\n\nEVERYWHERE\n\n";
如果你只是打印这个,它会像这样输出(当然\n
不会“字面地”打印):
\n
HERE\n
\n
THERE\n
\n
EVERYWHERE\n
\n
\n
当我调用该方法时split("\n")
,我想获取新行之间的所有字符串(\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 中那样的空字符串吗?当然,我可以编写一段多行代码,但在我浪费时间尝试实现它之前,我想知道是否有一个简单的方法或额外的两行左右代码可以帮助我。谢谢!
use str.split("\n", -1)
(带有负数limit
争论)。什么时候split
给出零或没有limit
参数它会丢弃尾随的空字段,当它给出一个正值时limit
参数它将字段的数量限制为该数量,但是negativelimit 意味着允许任意数量的字段并且不丢弃尾随的空字段。这是有记录的here http://docs.oracle.com/javase/6/docs/api/java/lang/String.html#split%28java.lang.String,%20int%29该行为取自 Perl。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)