我有一个来自文本区域的字符串:(变量名称为string
)
This is the first line
And this is the second
如果我使用string.split(" ")
将其拆分为单独的单词,请检查哪些单词包含“\ n”
for(String s : string.split(" ")) {
if(s.contains("\n"))
System.out.println(s);
}
我的句子中的line
和And
都包含\n
。但是,如果我要检查这个词是以\n
开头还是以它结尾,那么它就不会给我带来任何结果。
if(s.contains("\n")) {
System.out.println("Contains");
if(s.startsWith("\n"))
System.out.println("Starts with");
else if(s.endsWith("\n")) {
System.out.println("Ends with");
else
System.out.println("Does not contain");
}
我的结果:
Contains
Does not contain
因此,如果该单词包含\n
,但它不是以它开头或结尾,那么它究竟在哪里以及如何在不使用replaceAll(String, String)
的情况下管理它?
答案 0 :(得分:24)
字符串看起来像是:
"This is the first line\nAnd this is the second"
因此,当您按" "
拆分时,您会得到:
"line\nAnd"
当你打印它时,它看起来像两个单独的字符串。为了证明这一点,尝试在for
循环中添加额外的打印:
for (final String s : string.split(" ")) {
if (s.contains("\n")) {
System.out.print(s);
System.out.println(" END");
}
}
<强>输出:强>
line
And END
当您尝试检查字符串是以"\n"
开头还是结尾时,您将无法获得任何结果,因为事实上字符串"line\nAnd"
不会以"\n"
开头或结尾
答案 1 :(得分:5)
这是"line\nAnd"
打印时,它显示为
line
And
答案 2 :(得分:2)
没有行和以及。它是行\ n和。你在控制台看到了:
行
和强>
完全是因为换行符 \ n 。
所以它;在中间,如果您将代码更改为s.contains("\n"))
。你会看到它。
答案 3 :(得分:2)
字符串:
This is the first line\nAnd this is the second
使用" " (space)
分割后,您将获得输出:line\nAnd
,这意味着字符串不会以\n
开头或以if (s.contains("\n")) {
System.out.print(s);
}
结尾。
line
And
输出:
{{1}}