我有以下字符串:
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
参数时,它将字段的数量限制为该数量,但是
负数
限制表示允许任意数量的字段并且不丢弃尾随的空字段。在此处进行了记录,其行为取自Perl。
我有以下字符串: 如果你只是打印这个,它会像这样输出(当然不会“逐字”打印): 调用方法split(“\n”)时,我希望获取新行(
我是Java初学者,当我输入一些单词作为命令行参数时,我想颠倒句子的字符顺序。 这是我的代码。当我输入“这是一支笔”时,输出应该是“. nep a si sihT”。但是,这段代码的输出是“. nep a si sihT”。它在反转的句子末尾包含一个额外的空格。 有人知道我如何删除空间吗?
问题内容: 我正在解决一个简单的问题: 在Java中删除字符数组中的某些字符,想法很简单: 我想输入一个信号,表示当我们想要使用例如生成一个字符串时,不必考虑数组的其余部分 Java中是否有这样的字符?(我想是,但我不确定) 例如,当我们调用: 这将被打印: 虽然我想得到,但我不想使用新的数组来做到这一点 问题答案: Java不会像C那样“标记”字符串的结尾。它跟踪长度和值,因此字符串中可以包含零
我在Linux中使用的Java版本是: OpenJDK版本“16.0.2”2021-07-20 OpenJDK运行时环境(构建16.0.2+7) OpenJDK 64位服务器VM(构建16.0.2+7,混合模式) 这是我从Head-First Java书中编译的代码: 为什么那个特殊字符(%)会出现在字符串的末尾,我如何编写代码来去掉它?
扫描仪sc=新扫描仪(系统输入);字符串A=sc.nextLine();