gpt4 book ai didi

Java:字符串拆分():我希望它在末尾包含空字符串

转载 作者:IT老高 更新时间:2023-10-28 20:21:07 27 4
gpt4 key购买 nike

我有以下字符串:

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 中的空字符串?当然,我可以编写一段多行代码,但想知道,在我浪费时间尝试实现它之前,是否有一个简单的方法或额外的两行左右的代码可以帮助我。谢谢!

最佳答案

使用 str.split("\n", -1) (带有负的 limit 参数)。当 split 被赋予零或没有 limit 参数时,它会丢弃尾随的空字段,而当它被赋予正 limit 参数时,它会限制字段的数量到那个数字,但是 negative 限制意味着允许任意数量的字段并且不丢弃尾随的空字段。这已记录在 here并且行为取自 Perl。

关于Java:字符串拆分():我希望它在末尾包含空字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13939675/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com