Как удалить строки из начала и конца строки (в Java)?

У меня есть строка, которая содержит текст пустая строка. Каков наилучший способ сохранить часть с текстом, но удалить новую строку пробела с конца?

6 ответов


использовать String.trim() способ избавиться от пробельных символов (пробелы, новые строки и т. д.) от начала и до конца строки.

String trimmedString = myString.trim();

String.replaceAll("[\n\r]", "");

Если ваша строка-это потенциально null рассмотрите возможность использования StringUtils.trim() - нулевая безопасная версия String.trim().


String trimStartEnd = "\n TestString1 linebreak1\nlinebreak2\nlinebreak3\n TestString2 \n";
System.out.println("Original String : [" + trimStartEnd + "]");
System.out.println("-----------------------------");
System.out.println("Result String : [" + trimStartEnd.replaceAll("^(\r\n|[\n\x0B\x0C\r\u0085\u2028\u2029])|(\r\n|[\n\x0B\x0C\r\u0085\u2028\u2029])$", "") + "]");
  1. начало строки = ^,
  2. конец строки = $ ,
  3. комбинация регулярных выражений=/,
  4. разрыв строки = \р\н|[\н\x0B\x0C\Р\u0085\u2028\u2029]

Я собираюсь добавить ответ на это, потому что, хотя у меня был тот же вопрос, предоставленный ответ не был достаточным. Подумав, я понял, что это можно сделать очень легко с помощью регулярного выражения.

удалить newlines С самого начала:

// Trim left
String[] a = "\n\nfrom the beginning\n\n".split("^\n+", 2);

System.out.println("-" + (a.length > 1 ? a[1] : a[0]) + "-");

и конца строки:

// Trim right
String z = "\n\nfrom the end\n\n";

System.out.println("-" + z.split("\n+$", 2)[0] + "-");

Я уверен, что это не самый эффективный способ обрезки строку. Но она кажется самой чистой и самый простой способ встроить такую операцию.

обратите внимание, что тот же метод можно сделать, чтобы обрезать любое изменение и комбинацию символов с любого конца, поскольку это простое регулярное выражение.


String text = readFileAsString("textfile.txt");
text = text.replace("\n", "").replace("\r", "");