【发布时间】:2014-02-08 23:09:08
【问题描述】:
我有一个来自文本区域的字符串:(变量名为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) 的情况下管理它?
【问题讨论】:
-
我猜新行在您的系统 (Windows) 上可能表示为
\r\n。 -
@Crozin 在这种情况下
'\n'仍然是最后一个字符... -
\n在空白类中,“”也是。在\s+上拆分以获得所有那些讨厌的看不见的分隔符。不要依赖 Split() 默认的 BS,如果它是半便携的,永远不要依赖。 -
诊断打印在空格和换行符很重要的地方应该有括号或引号字符。例如'print("")'.
标签: java regex string contains