Эта статья является быстрой шпаргалкой по использованию метода trim в Java для удаления пробелов в строках. Краткое описание работы метода + примеры кода.
Описание метода trim
Метод
trim()
используется для удаления лишних пробелов в строке. Напомню, строки в Java неизменны, поэтому исходная строка не будет изменена — будет создана новая строка без пробелов в начале и конце.
Смотрим пример:
public static void main(String[] args) {
String string = " JavaDevBlog.com - программирование на Java ";
System.out.println(string.trim());
}
|
У нас есть строка, в которой в начале 5 пробелом и 1 пробел в конце строки. Запустим программу и посмотрим в консоль:
JavaDevBlog.com - программирование на Java и разработка под Android
|
Новая строка без каких-либо пробелов.
Что «под капотом» в методе trim?
Реализация метода в Java достаточно простая. Смотрим исходники:
public String trim() {
int len = value.length;
int st = 0;
char[] val = value;
while ((st < len) && (val[st] <= ' ')) {
st++;
}
while ((st < len) && (val[len - 1] <= ' ')) {
len--;
}
return ((st > 0) || (len < value.length)) ? substring(st, len) : this;
}
|
Суть метода в двух циклах while: в первом подсчитывается количество пробелов в начале строки — в переменную
st
. Во втором цикле while нахождение пробела уменьшает значение переменной len
(используется для подсчета длины строки) на 1. Метод trim
возвращает подстроку — результат выполнения метода substring c параметрами st
— откуда начать вырезать, len
— где закончить. В противном случае (если пробелы не были найдены ни в начале строки, ни в конце) метод вернет ту же строку.- Альтернативы методу trim()
Более гибким аналогом метода является использование регулярного выражения для замены пробелов в комбинации с
replaceAll()
:
public static void main(String[] args) {
String string = " JavaDevBlog.com - программирование на Java и разработка под Android ";
System.out.println(string.replaceAll("^\\s+|\\s+$", ""));
}
|
В приведенном выше фрагменте кода регулярное выражение (
^\\s+
) используется для поиска всех пробелов в начале строки. Символ ‘^
‘ указывает на начало строки с последующим ‘\\s+
‘, который указывает на пропуски, пока первый символ не встретится.
Во второй части регулярного выражения используется (
\\s+$
) для поиска пробелов начиная с последнего символа. Объединяет эти два условия поиска в одном регулярном выражении знак ‘|
‘.- Когда может понадобиться метод trim()?
Чаще всего он используется при обработке результатов ввода пользователей, парсинге сайтов, обработке данных с Excel или CSV.
Смотри также:
- Зачем нужна Java. http://fetisovvs.blogspot.com/2014/07/java.html
- Концепции объектно-ориентированного программирования — ООП в Java. http://fetisovvs.blogspot.com/2017/01/java-java.html
- Java-ресурсы, на которые есть смысл подписаться. http://fetisovvs.blogspot.com/2016/09/java-java.html
- Подборка популярных ошибок начинающих Java программистов. http://fetisovvs.blogspot.com/2016/10/java-java_29.html
- Двести пятьдесят русскоязычных обучающих видео докладов и лекций о Java. http://fetisovvs.blogspot.com/2015/12/java-5-java-java.html
- ТОП-3 способа конвертировать массив в ArrayList. Пример на Java. http://fetisovvs.blogspot.com/2016/09/3-arraylist-java-java.html
- Integer и int. http://fetisovvs.blogspot.com/2016/07/integer-int-java.html
- Ввод–вывод в Java. http://fetisovvs.blogspot.com/2016/05/java-java_28.html
- Популярные методы для работы с Java массивами. http://fetisovvs.blogspot.com/2016/09/java-java_29.html
- В чем разница между Set и Set. Пример использования Set. http://fetisovvs.blogspot.com/2016/09/set-set-set-java.html
- Пример использования метода replace в Java. Как заменить символ в строке? http://fetisovvs.blogspot.com/2017/01/replace-java-java.html
- Чтение и запись CSV файла с помощью SuperCSV. http://fetisovvs.blogspot.com/2017/01/csv-supercsv-java-java.html
- Шпаргалка Java программиста 7.1 Типовые задачи: Оптимальный путь преобразования InputStream в строку. http://fetisovvs.blogspot.com/2016/04/java-71-inputstream-java.html
- Шпаргалка Java программиста 8. Библиотеки для работы с Json (Gson, Fastjson, LoganSquare, Jackson, JsonPath и другие). http://fetisovvs.blogspot.com/2016/04/java-8-json-gson-fastjson-logansquare.html
- Как установить соединение с СУБД MySQL в IntelliJ IDEA в редакции Community. http://fetisovvs.blogspot.com/2016/04/mysql-intellij-idea-community-java.html
- Работа с Bluetooth LE из Java-приложений. http://fetisovvs.blogspot.com/2016/07/bluetooth-le-java-java.html
- Программируем… выход из лабиринта. http://fetisovvs.blogspot.com/2015/10/java.html
- Основы работы с IntelliJ IDEA. Интерфейс программы. http://fetisovvs.blogspot.com/2016/09/intellij-idea-java.html
Комментариев нет:
Отправить комментарий