Перейти к содержимому

Как удалить пробел в конце строки java

  • автор:

Как удалить пробел в конце строки java

Анализ данных с помощью регулярных выражений или быстрый способ проверки введенных данных (часть вторая)

Теперь давайте посмотрим примеры использования регулярных выражений для решения конкретных задач.

Удаление лишних пробелов

При вводе данных в форму пользователь может случайно поставить несколько пробелов (или знаков табуляции) до начала текста или в его конце. Эти пробелы обычно не несут никакой информации и их нужно удалить.

В первую очередь создадим необходимые нам шаблоны. Для выделения пробелов в начале строки нам подойдет » ^\\s+ «. Символ ^ означает начало строки, а \\s+ — один или более пробелов. Для того чтобы удалить пробелы можно воспользоваться методом replaceFirst(«») класса Matcher с пустой строкой в качестве параметра. Этот метод заменяет первый найденный фрагмент строки, который соответствует регулярному выражению, на заданную строку.
Например:

 
Pattern p = Pattern.compile("^\\s+"); Matcher m = p.matcher(input); String output = m.replaceFirst("");

Для выделения пробелов в конце строки немного изменим шаблон » \\s+$ «. Практически тоже самое, только в конце выражения стоит символ $ , который означает конец строки.

Код для использования шаблона будет выглядеть примерно так:

 
p = Pattern.compile("\\s+$"); m = p.matcher(output); output = m.replaceAll("");

Это продолжение предыдущего фрагмента кода, поэтому строка output используется как исходная строка. Т.е. сначала мы удаляем пробелы в начале строки, а потом – в её конце. Метод replaceAll , в отличие от replaceFirst заменяет на заданную строку (в данном случае «» ) все фрагменты строки, которые соответствуют шаблону. Для этой программы не играет роли, каким методом мы воспользуемся, т.к. может быть только одна группа пробелов в начале строки, и одна – в конце.

Вы можете скачать программу для удаления пробелов, которая работает по описанному здесь методу. После запуска введите какую-нибудь строку, например: » привет «. В результате вы получите: «привет».

Проверка формата телефонного номера

Теперь посмотрим более сложный пример. Допустим, у нас есть форма, в которую пользователь должен ввести номер телефона. Телефонные номера обычно записываются в виде групп цифр, разделенных дефисами, но это не обязательно. Между цифрами могут быть пробелы, а могут и не быть. Кроме того, номер может содержать код города, который обычно записывается в круглых скобках.
Т.е. возможны такие варианты записи:

555-33-44
555 – 43 – 78
(333) 44 – 55- 88
8-(022)-4-333-111
456789

Наша задача: проверить, насколько это возможно, правильность ввода номера.
Для этого можно воспользоваться таким регулярным выражением: » [\\d\\s()\\-]+ «. Здесь в квадратных скобках мы определили класс символов, в который входят все цифры \\d , все пробельные символы \\s , круглые скобки и дефис. Знак + в конце выражения означает, что любой из этих символов, может встречаться один или более раз.

Для того чтобы проверить соответствие введенного номера, нашему выражению, воспользуемся методом matches() класса Matcher . Он возвращает true , если заданная строка соответствует регулярному выражению.
Например:

 Pattern p = Pattern.compile("[\\d\\s\\(\\)\\-]+"); Matcher m = p.matcher(input); if(m.matches()) < System.out.println("\"" + input + "\" - OK"); >else

Теперь попробуем выделить код города (если он есть) из номера. Для этого составим еще одно регулярное выражение – » \\([\\d]+\\) «. Здесь мы задаем последовательность символов. Первой должна идти открывающая круглая скобка, за ней – одна или более цифр, после них – закрывающая круглая скобка.

Для того чтобы найти часть строки, которая соответствует этому выражению, можно воспользоваться методом find() класса Matcher . Этот метод возвращает true , если в исходной строке найдена заданная подстрока. Для того чтобы получить саму подстроку, нужно использовать метод group() .
Например:

 Pattern codeP = Pattern.compile("\\([\\d]+\\)"); m = codeP.matcher(input); if(m.find())

Вы можете скачать демонстрационную программу для проверки телефонных номеров.

Разбивка строки на лексемы

В первую очередь разберемся, что такое лексемы. Это фрагменты строки, которые находятся между символами разделителями. Например, в обычном предложении, лексемы – это слова, а символы разделители – это пробелы между ними.

Вообще-то, для того, чтобы разбить предложение на слова использовать регулярные выражения не обязательно. Можно воспользоваться классом StringTokenizer из пакета java.util . В его конструкторе можно задать строку с разделителями, а затем в цикле с помощью метода nextToken() получить все лексемы.

Но, что делать, если разделителем служит сложный фрагмент, состоящий из смешанных данных? Рассмотрим конкретный пример. Допустим, у нас есть строка (или строки), которая содержит имена и даты рождения. Мы точно знаем, что после имени идет символ двоеточия, а дата состоит из какого-то набора цифр и дефисов. Имя может состоять из одного или нескольких слов.
Например:
Вова:2000-11-3Александр Петрович:1970-02-14Петя:1980-07-1Костя:1990-08-23

Нам нужно выделить все имена из строки. Для этого составим регулярное выражение, которое соответствует разделителю, т.е. символу двоеточия, за которым следует дата. У меня получилось такое выражение » :[\\d\\-]+ «. Первым идет двоеточие, за ним мы объявляем символьный класс, в который входят все цифры и дефис. Символы из этого класса могут встречаться один или более раз (знак + ). После этого мы можем воспользоваться методом split класса Pattern для получения массива строк с именами.
Код, выполняющий эти операции, будет выглядеть примерно так:

 
Pattern p = Pattern.compile(":[\\d\\-]+"); String[] tokens = p.split(input);

Как видите, получить лексемы с помощью класса Pattern значительно проще, чем, используя StringTokenizer .

Вы можете скачать программу, демонстрирующую работу этого метода.

Функция trim

Функция trim удаляет пробелы с начала и конца строки. Может также удалять другие символы, если их указать вторым параметром.

Синтаксис

trim(строка, [символы]);

Пример

Давайте удалим пробелы по краям строки:

Результат выполнения кода:

Пример

Давайте удалим слеши по краям строки:

Результат выполнения кода:

Пример

Давайте удалим слеши и точки по краям строки:

Результат выполнения кода:

Пример

Функция удаляет любое количество указанных символов, если они стоят с краю:

Результат выполнения кода:

Пример

Можно указать диапазон символов с помощью двух точек ‘..’ . К примеру, укажем, что мы хотим удалить символы от ‘a’ до ‘d’ :

Результат выполнения кода:

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

  • функцию ltrim ,
    которая удаляет пробелы слева
  • функцию rtrim ,
    которая удаляет пробелы справа

String.prototype.trim()

Метод trim() удаляет пробельные символы с начала и конца строки. Пробельными символами в этом контексте считаются все собственно пробельные символы (пробел, табуляция, неразрывный пробел и прочие) и все символы конца строки (LF, CR и прочие).

Синтаксис

str.trim()

Описание

Метод trim() возвращает строку с вырезанными пробельными символами с её концов. Метод trim() не изменяет значение самой строки.

Примеры

Пример: использование метода trim()

Следующий пример покажет строку ‘foo’ :

var orig = " foo "; console.log(orig.trim()); // 'foo' // Другой пример, в котором .trim() убирает пробельные символы только с одной стороны. var orig = "foo "; console.log(orig.trim()); // 'foo' 

Полифил

Запуск следующего кода до любого другого создаст метод trim() , если он ещё не реализуется браузером.

if (!String.prototype.trim)  (function ()  // Вырезаем BOM и неразрывный пробел String.prototype.trim = function ()  return this.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g, ""); >; >)(); > 

Спецификации

Specification
ECMAScript Language Specification
# sec-string.prototype.trim

Совместимость с браузерами

BCD tables only load in the browser

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

  • String.prototype.trimLeft() Non-standard
  • String.prototype.trimRight() Non-standard

Found a content problem with this page?

  • Edit the page on GitHub.
  • Report the content issue.
  • View the source on GitHub.

This page was last modified on 7 авг. 2023 г. by MDN contributors.

Your blueprint for a better internet.

MDN

Support

  • Product help
  • Report an issue

Our communities

Developers

  • Web Technologies
  • Learn Web Development
  • MDN Plus
  • Hacks Blog
  • Website Privacy Notice
  • Cookies
  • Legal
  • Community Participation Guidelines

Visit Mozilla Corporation’s not-for-profit parent, the Mozilla Foundation.
Portions of this content are ©1998– 2024 by individual mozilla.org contributors. Content available under a Creative Commons license.

trim() в java

Метод trim() в Java позволяет удалить пробелы в начале и конце строки. Как будто «подрезает» пробелы.

Синтаксис:

public String trim ( )

Как всегда, проще объяснить на примере.

Пример

class Test < public static void main ( String [ ] args ) < String sentence1 = " Java - очень крутой язык программирования. " ; String sentence2 = " Java - очень крутой язык программирования. " ; System . out . println ( sentence1 ) ; System . out . println ( sentence2 . trim ( ) ) ;

Если Вы запустите данный код на своем компьютере, то в консоли Вы увидите следующее:

Java — очень крутой язык программирования.

Java — очень крутой язык программирования.

Комментарии к коду:

String sentence1 = » Java — очень крутой язык программирования. » ;
String sentence2 = » Java — очень крутой язык программирования. » ;

  • Как видите, у нас 2 переменные: sentence1 и sentence2, в которые присвоено одно и то же значение, а именно: » Java — очень крутой язык программирования. » При этом слева и справа у нас пробелы.
  • Как же сделать так, чтоб в консоль было выведено » Java — очень крутой язык программирования. » без пробелов слева и справа? Для этого необходимо применить метод trim ().

И действительно, написав вот эти 2 строчки кода:

System . out . println ( sentence1 ) ;
System . out . println ( sentence2 . trim ( ) ) ;

мы получили в консоли:

Java — очень крутой язык программирования.

Java — очень крутой язык программирования.

То есть переменная sentence1 была выведена в консоль с пробелами слева и справа. А переменная sentence2 была выведена без пробелов слева и справа, поскольку мы применили метод trim().

Как видите, все предельно просто.

Данная статья написана Vertex Academy. Есть возможность пройти наши курсы по Java с нуля. Детальнее на сайте.

  • ← concat() в Java
  • Массив объектов в Java →

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

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

Luxury Car Rental in Miami | Reserve a Premium Vehicle with RealCar