检查字符串是否包含\ n Java

时间:2011-04-01 20:26:14

标签: java string

如何检查字符串是否包含\ n或新行字符?

word.contains("\\n")
word.contains("\n")

4 个答案:

答案 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;
    }