Как ввести разрыв строки в строке всякий раз, когда ключевое слово встречается в Java? - PullRequest
0 голосов
/ 16 октября 2019

Цель: префикс каждого ключевого слова с новой строкой в ​​строке

фрагмент кода:

String [] keys = {"Status:","Active:","Priority:"};
text="Status:   Open    Active: Yes Priority:   None";
System.out.println("Before: "+text);
for(int k = 0; k<keys.length; k++){
text = text.replaceAll(keys[k], "\r\n"+keys[k]);
}
System.out.println("After: "+text);

Ожидаемый результат:

[new line]
Status: Open    
Active: Yes 
Priority:   None

Фактический результат:

[new line]
Status: Open    Active: Yes Priority:   None

Обновление: текст копируется с веб-страницы с набором символов utf-8, вставляется в блокнот и сохраняется с кодировкой utf-8. текст, прочитанный программой и не способный к обработке. вставлена ​​та же строка, я думаю, что кодировка не сохранилась.

Пожалуйста, помогите мне решить проблему.

1 Ответ

1 голос
/ 16 октября 2019

Текст содержит \r\n, но способ его отображения не показывает их.

System.out.println выводит все в одну строку, а в конце этот метод вставляет символ новой строки.

Если вы хотите распечатать измененный текст только для целей отладки, вы можете сделать это:

System.out.println("After: " + text.replaceAll("\r\n", "\\r\\n");

Он распечатает текст с видимыми элементами \r\n.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...