How to trim the whitespace from a string? [duplicate]
I am writing this function for a J2ME application, so I don’t have some of the more advanced / modern Java classes available to me. I am getting java.lang.ArrayIndexOutOfBoundsException on this. So, apparently either it doesn’t like the way I’ve initialized the newChars array, or I’m not doing something correctly when calling System.arraycopy .
8 Answers 8
The simple way to trim leading and trailing whitespace is to call String.trim() . With Java 11 and later, you can also use String.strip() which uses a different interpretation of what «white space» means 1 .
If you just want to trim just leading and trailing spaces (rather than all leading and trailing whitespace), there is an Apache commons method called StringUtils.strip(String, String) that can do this; call it with » » as the 2nd argument.
Your attempted code has a number of bugs, and is fundamentally inefficient. If you really want to implement this yourself, then you should:
- count the leading space characters
- count the trailing space characters
- if either count is non-zero, call String.substring(from, end) to create a new string containing the characters you want to keep.
This approach avoids copying any characters 2 .
1 — The different meanings are explained in the respective javadocs. Alternatively, read the answers to Difference between String trim() and strip() methods in Java 11.
2 — Actually, that depends on the implementation of String . For some implementations there will be no copying, for others a single copy is made. But either is an improvement on your approach, which entails a minimum of 2 copies, and more if there are any characters to trim.
trim() в java
Метод trim() в Java позволяет удалить пробелы в начале и конце строки. Как будто «подрезает» пробелы.
Синтаксис:
Как всегда, проще объяснить на примере.
Пример
Если Вы запустите данный код на своем компьютере, то в консоли Вы увидите следующее:
Java — очень крутой язык программирования.
Java — очень крутой язык программирования.
Комментарии к коду:
- Как видите, у нас 2 переменные: sentence1 и sentence2, в которые присвоено одно и то же значение, а именно: » Java — очень крутой язык программирования. » При этом слева и справа у нас пробелы.
- Как же сделать так, чтоб в консоль было выведено » Java — очень крутой язык программирования. » без пробелов слева и справа? Для этого необходимо применить метод trim ().
И действительно, написав вот эти 2 строчки кода:
мы получили в консоли:
Java — очень крутой язык программирования.
Java — очень крутой язык программирования.
То есть переменная sentence1 была выведена в консоль с пробелами слева и справа. А переменная sentence2 была выведена без пробелов слева и справа, поскольку мы применили метод trim().
Как видите, все предельно просто.
Данная статья написана Vertex Academy. Есть возможность пройти наши курсы по Java с нуля. Детальнее на сайте.
Удалить начальные и конечные пробелы в Java (обрезка слева и справа)
В этом посте мы обсудим, как удалить начальные и конечные пробелы в Java. В ASCII пробельные символы — это пробелы. (‘ ‘) , вкладка (‘\t’) , возврат каретки (‘\r’) , новая линия (‘\n’) , вертикальная вкладка (‘\v’) и подача формы (‘\f’) .
1. Использование String.replaceAll() метод
Мы можем использовать String class replaceAll() метод для реализации левой и правой обрезки в Java. replaceAll() метод принимает регулярное выражение и заменяет каждую подстроку этой строки, которая соответствует регулярному выражению, указанной заменой.
Метод Trim в Java
Метод trim в Java или метод обрезки в основном является встроенной функцией, которая удаляет начальные и конечные пробелы.
Что такое метод Trim в Java?
Метод Trim Java – это встроенная функция, которая удаляет начальные и конечные пробелы. Символ пробела имеет определенное значение Unicode – «u0020». Метод trim определяется в классе пакета java.lang. Каждый раз, когда вызывается метод, возвращается новый строковый объект.
Примечание: этот метод не устраняет промежуточные пробелы строки.
Другой метод находит значение Unicode для символа пробела, как только он находит его до или после строки, он удаляет его и возвращает строку.
Идем дальше, давайте посмотрим синтаксис:
Синтаксис:
Синтаксис довольно прост.
Давайте теперь реализуем это через код Java!
Пример:
Вывод: hello Rachel green hello Rachelgreen hello Rachel green hello Rachelgreen