Где\n находится в строке?

У меня есть строка, которая поступает из текстовой области: (с именем переменной 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)?

Ответ 1

Случается, что строка выглядит так:

"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"

Ответ 2

Здесь "line\nAnd"

Когда вы печатаете это, оно появляется как

line
And

Ответ 3

Нет строки и И. Это строка \nAnd. Вы видели в консоли:

строка
И

точно из-за символа разрыва строки \n.

Так его; в середине, и если вы измените код на s.contains("\n")). Вы увидите это.

Ответ 4

Строка:

This is the first line\nAnd this is the second

После разделения с помощью " " (space) вы получите вывод как: line\nAnd, поэтому он означает, что строка не начинается или не заканчивается на \n.

if (s.contains("\n")) {
    System.out.print(s);
}

Вывод:

line
And