Избранное сообщение

Фетісов В. С. Комп’ютерні технології в тестуванні. Навчально-методичний посібник. 2-ге видання, перероблене та доповнене / Мои публикации

В 10-х годах я принимал участие в программе Европейского Союза Tempus "Освітні вимірювання, адаптовані до стандартів ЄС". В рамк...

Благодаря Интернету количество писателей и поэтов увеличивается в геометрической прогрессии. Поголовье читателей начинает заметно отставать.

вторник, 24 января 2017 г.

Пример использования метода trim в Java: как удалить пробелы в начале и конце строки? / Программирование на Java

Эта статья является быстрой шпаргалкой по использованию метода 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.

Смотри также:

Комментариев нет:

Отправить комментарий