Эта статья является быстрой шпаргалкой по успользованию метода trim в Java для удаления пробелов в строках. Краткое описание работы метода + примеры кода.
Описание метода trim
Видео версия урока:
Метод trim()
используется для удаления лишних пробелов в строке. Напомню, строки в Java неизменны, поэтому исходная строка не будет изменена — будет создана новая строка без пробелов в начале и конце.
Смотрим пример:
1 2 3 4 |
public static void main(String[] args) { String string = " JavaDevBlog.com - программирование на Java "; System.out.println(string.trim()); } |
У нас есть строка, в которой в начале 5 пробелом и 1 пробел в конце строки. Запустим программу и посмотрим в консоль:
1 |
JavaDevBlog.com - программирование на Java и разработка под Android |
Новая строка без каких-либо пробелов.
Что «под капотом» в методе trim?
Реализация метода в Java достаточно простая. Смотрим исходники:
1 2 3 4 5 6 7 8 9 10 11 12 13 |
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()
:
1 2 3 4 |
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 и Android.