Удалить пробел из строки в Java
В этом посте будет обсуждаться, как удалить пробелы из строки в Java.
Символ называется пробельным символом в Java тогда и только тогда, когда Character.isWhitespace(char) метод возвращает истину. Наиболее часто используемые пробельные символы: \n, \t, \r и пространство. Шаблон регулярного выражения для пробельных символов: \s . Используя этот шаблон в регулярном выражении, мы можем либо заменить последовательные пробелы одним пробелом, либо удалить все пробелы из входной строки.
1. Замена последовательных пробелов одним пробелом
Идея состоит в том, чтобы использовать шаблон \s+ вместо \s для обработки двух или более последовательных пробелов во входной строке, как показано ниже:
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.
Удалить все пробелы, табуляцию, символы и т.д. из String Java?
Я считываю текст в строку. хочу удалить абсолютно все кроме букв. Пробелы, переходы на новую строку, Абзацы, символы, ну и т.д для последующего подсчета биграмм. Пытаюсь сделать это регулярным выражением. У меня ничего не выходит
Для начала, такое выраение не убирает переходы на новую строку в некоторых случаях
replaceAll(«[^а-я]+», «»);
Возвращает ничего
- Вопрос задан более трёх лет назад
- 7734 просмотра
- Вконтакте
- Вконтакте

Вот недавно писал для замены строк в текст фаиле с 001, 002, 003, 004. 500 хД чуток переделал, там где стринги таб, и ньюлайн, просто добавь еще твои варианты и вставь в лупе доп строку для этого стринга. Т.е. просто сделай все нужные варианты, которые нужны именно тебе. В данном же примере я сделал только пробелы и переходы на новую строку
Работа со строками в Java

Сравнение — одна из самых частых вещей, которая делается со строками. У класса String более десяти различных методов, которые используются для сравнения строк со строками. Ниже мы рассмотрим семь основных.
| Методы | Описание |
|---|---|
| Строки считаются равными, если все их символы совпадают. | |
| Сравнивает строки, игнорируя регистр (размер) букв | |
| Сравнивает строки лексикографически. Возвращает 0, если строки равны. Число меньше нуля, если текущая строка меньше строки-параметра. Число больше нуля, если текущая строка больше строки-параметра | |
| Сравнивает строки лексикографически, игнорирует регистр. Возвращает 0, если строки равны. Число меньше нуля, если текущая строка меньше строки-параметра. Число больше нуля, если текущая строка больше строки-параметра | |
| Сравнивает части строк | |
| Проверяет, что текущая строка начинается со строки prefix | |
| Проверяет, что текущая строка заканчивается на строку suffix |
Допустим, вы хотите написать программу, которая просит пользователя ввести путь к файлу и проверяет, что это за файл по его расширению. Тогда код такой программы мог бы выглядеть примерно так:
2. Поиск подстрок
Вторая по популярности операция после сравнения строк — это поиск одной строки в другой. Для этого у класса String тоже есть немного методов:
| Методы | Описание |
|---|---|
| Ищет строку str в текущей строке. Возвращает индекс первого символа встретившейся строки. | |
| Ищет строку str в текущей строке, пропустив index первых символов. Возвращает индекс найденного вхождения. | |
| Ищет строку str в текущей строке с конца. Возвращает индекс первого вхождения. | |
| Ищет строку str в текущей строке с конца, пропустив index первых символов. | |
| Проверяет, что текущая строка совпадает с шаблоном, заданным регулярным выражением. |
Методы indexOf(String) и indexOf(String, index) часто используются в паре. Первый позволяет найти первое вхождение переданной подстроки в текущей строке. А второй метод позволяет найти второе, третье и т.д. вхождения за счет того, что пропускает первые index символов.
Допустим, у нас есть url типа такого: « https://domen.ru/about/reviews », и мы хотим заменить имя домена на javarush.ru . Домены в урлах могут быть разными, но мы знаем, что:
- Перед именем домена идут два слеша //
- После имени домена идет одинарный слеш /
Вот как бы выглядел код такой программы:
Получаем индекс первого вхождения строки //
Получаем индекс первого вхождения строки / , но ищем только после символов // .
Получаем строку от начала и заканчивая символами //
Получаем строку от / и до конца.
Методы lastIndexOf(String) и lastIndexOf(String, index) работают точно так же, только поиск ведется с конца строки к началу.