Как убрать пробелы в строке java
Перейти к содержимому

Как убрать пробелы в строке java

  • автор:

Удалить пробел из строки в 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 .

Lii's user avatar

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:

  1. count the leading space characters
  2. count the trailing space characters
  3. 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 просмотра
  • Facebook
  • Вконтакте
  • Twitter

EugeneP2

  • Facebook
  • Вконтакте
  • Twitter

Therapyx

Вот недавно писал для замены строк в текст фаиле с 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) работают точно так же, только поиск ведется с конца строки к началу.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *