Удаление пустых пробелов в строке без удаления разрывов строк

#java #string #replace

#java #строка #заменить

Вопрос:

У меня есть список строк в txt файле

 string1,
string2,
string3,
string4,
  

Я хочу удалить string3

txtData = txtData.replace("string3,", "");

 string1,
string2,

string4,
  

Я не хочу, чтобы там было пустое пространство, поэтому я делаю это

txtData = txtData.replace("n", "");

но это делает это вместо

string1,string2,string4

Мне нужно это

 string1,
string2,
string4,
  

как?

Ответ №1:

Объедините две вещи, которые вы пробовали:

 txtData = txtData.replace("string3,n", "");
  

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

 txtData = txtData.replaceAll("(?m)string3,$", "");
  

Это регулярное выражение, которое соответствует ‘end of line’ ( $ означает: ‘конец строки’, если в многострочном режиме. (?m) включает многострочный режим).

Ответ №2:

Для этой цели можно использовать регулярные выражения:

 String str =
        "string1,n"  
        "string2,n"  
        "string3,n"  
        "string4,";

// remove literal "string3," and trailing
// whitespace characters after it, if present
String str2 = str.replaceAll("string3,\s*","");

System.out.println(str2);
  

Вывод:

 string1,
string2,
string4,