如何检查字符串是否包含\ n或新行字符?
word.contains("\\n")
word.contains("\n")
答案 0 :(得分:37)
如果字符串是在同一个程序中构建的,我建议使用它:
String newline = System.getProperty("line.separator");
boolean hasNewline = word.contains(newline);
但如果您打算使用\ n,则此驱动程序说明了该做什么:
class NewLineTest {
public static void main(String[] args) {
String hasNewline = "this has a newline\n.";
String noNewline = "this doesn't";
System.out.println(hasNewline.contains("\n"));
System.out.println(hasNewline.contains("\\n"));
System.out.println(noNewline.contains("\n"));
System.out.println(noNewline.contains("\\n"));
}
}
导致
true
false
false
false
回应你的评论:
class NewLineTest {
public static void main(String[] args) {
String word = "test\n.";
System.out.println(word.length());
System.out.println(word);
word = word.replace("\n","\n ");
System.out.println(word.length());
System.out.println(word);
}
}
结果
6
test
.
7
test
.
答案 1 :(得分:9)
为了便于携带,你真的应该这样做:
public static final String NEW_LINE = System.getProperty("line.separator")
.
.
.
word.contains(NEW_LINE);
除非您完全确定"\n"
是您想要的。
答案 2 :(得分:8)
第二个:
word.contains("\n");
答案 3 :(得分:0)
我宁愿将JDK信任于System属性。 以下是有效的代码段。
private boolean checkIfStringContainsNewLineCharacters(String str){
if(!StringUtils.isEmpty(str)){
Scanner scanner = new Scanner(str);
scanner.nextLine();
boolean hasNextLine = scanner.hasNextLine();
scanner.close();
return hasNextLine;
}
return false;
}