无法删除java String中的换行符(\ n)。它甚至可能吗?

时间:2015-02-06 19:54:40

标签: java string newline

基本上,我要做的就是从Java中的String中删除换行符。我看了几十个问类似问题的帖子,他们都说了同样的话,但似乎没有一个对我有用。这是我有3行的所有代码:

    String text = "\\n          texttexttext     \\n";
    text = text.replaceAll("\\n", "");
    System.out.println(text);

该字符串类似于我实际尝试使用的字符串,但即使使用此字符串,我也找不到换行符并替换它。 replaceAll只是不会看到它,我不知道为什么。

我已经尝试了很多其他的事情

    text = text.replaceAll("\\n", "").replaceAll("\\r", "");

    text = text.replaceAll("\\r\\n|\\r|\\n", " ");

但是没有人能找到这个角色。我甚至无法使用Regex Pattern和Matcher对象找到它。我正在做的唯一不寻常的事情就是在Junit Test bean中做这件事,但我无法相信会做任何事情。

5 个答案:

答案 0 :(得分:7)

您的原始text中没有换行符。您已经转义了反斜杠,而不是n,因此您的\字符串中包含实际的反斜杠ntext字符。

您必须转义正则表达式中的反斜杠字符,但不能转义为文字字符串文本。

如果您将text初始化为"\n texttexttext \n",那么它会按预期查找并替换这些换行符。

答案 1 :(得分:4)

String newLine = System.getProperty("line.separator")
System.out.println(newLine.contains("\n")); // this is a new line
System.out.println(newLine.contains("\\n"));

输出:

true
false

答案 2 :(得分:0)

由Jon Lin评论

您的示例文字实际上并未谈到换行符 - \\n是字符串\n

另一个谬论是replaceAll期望正则表达式作为第一个输入。因此,\\n实际上已替换为\n,因为\是转义字符,然后将其解释为换行符 - 双重转义的情况,因此在输入文本中\\不匹配。

如果您尝试

text = text.replaceAll("\\\\n", "");

至少你得到了预期的结果,因为Java字符串和正则表达式都将\解释为转义字符。

答案 3 :(得分:0)

除了@ rgettman的答案之外,为了使它对社区有用,下面是一个很棒的Java程序(有关更多信息,您可以阅读here中的整篇文章。),它取代了换行符。

public class StringReplaceTask{


    public static void main(String args[]) {

        // Removing new line characters form Java String
        String sample="We are going to replace newline character \\n "
                + "New line should start now if \\n \n is working";

        System.out.println("Original String: " + sample);

        //replacing \n or newline character so that all text come in one line
        System.out.println("Escaped String: " + sample.replaceAll("\n", ""));


        // removing line breaks from String read from text file in Java
        String text = readFileAsString("words.txt");
        text = text.replace(System.getProperty("line.separator"), "");

    }  

答案 4 :(得分:-2)

如果为head = 'Hello',但当您为print(head)-> 'Hello\n'时 您可以通过\nrstrip()

删除remove()

您可以使用我的代码

**head=a[0:(len(head)-1)]**

删除隐藏在字符串中的\n

(在py 3上测试) 祝你好运!