Как удалить строки из начала и конца строки (в Java)?
У меня есть строка, которая содержит текст пустая строка. Каков наилучший способ сохранить часть с текстом, но удалить новую строку пробела с конца?
6 ответов
использовать String.trim()
способ избавиться от пробельных символов (пробелы, новые строки и т. д.) от начала и до конца строки.
String trimmedString = myString.trim();
Если ваша строка-это потенциально 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])$", "") + "]");
- начало строки = ^,
- конец строки = $ ,
- комбинация регулярных выражений=/,
- разрыв строки = \р\н|[\н\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] + "-");
Я уверен, что это не самый эффективный способ обрезки строку. Но она кажется самой чистой и самый простой способ встроить такую операцию.
обратите внимание, что тот же метод можно сделать, чтобы обрезать любое изменение и комбинацию символов с любого конца, поскольку это простое регулярное выражение.