Где\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