21 просмотров
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд
Загрузка...

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

Убрать пробелы в начале и конце строки через метод trim()

Как убрать все пробелы в начале и конце строки ?
У меня есть файл там хранится такая матрица ) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 .

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

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

Удалить пробелы в начале и в конце строки
Задали в универе программу именно на FASM, помогите кто сможет. Задана строка, удалить из неё.

Куда вставлять String resultString = inputString .trim().replace(” “,”*”);

И как избавиться от split?

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Удалить все пробелы в начале и в конце строки
Дана символьная строка.Удалить все пробелы в начале и в конце строки. Помогите решить пожалуйста.

Функция удаляющая пробелы в начале и в конце строки
Разработайте функцию std::string TrimBlanks(std::string const& str), выполняющую отрезание.

Как обрезать пробелы в начале и в конце строки?
Как обрезать любое количество пробелов в начале и в конце строки, если они там есть? И вернуть ту.

Исключить пробелы, стоящие в начале и в конце каждой строки
Дан текстовый файл f, состоящий из нескольких строк. Исключить пробелы, стоящие в начале и в конце.

Как удалить пробелы и знаки табуляции в начале и конце строки?
Как удалить пробелы и знаки табуляции в начале и конце строки? Я написал код но не понимаю в чем.

Удалить из строки все лишние пробелы: в начале, в конце, повторяющиеся
Дана строка предложение. Удалить из строки все лишние пробелы: в начале, в конце, повторяющиеся. .

Как удалить только пробелы строки в Java и сохранить ведущие пробелы?

Функция trim() удаляет как конечное, так и ведущее пространство, однако, если я хочу только удалить конечное пространство строки, как я могу это сделать?

Используя регулярное выражение s++$ , вы можете заменить все символы пробела (включая пробелы и символы табуляции) ничем ( “” ).

Вывод

Ниже приведен пример регулярного выражения:

  • s – любой символ пробела,
  • ++ – сопоставить один или несколько предыдущих токенов (владетельно); Т.е. сопоставить один или несколько символов пробелов. Образец + используется в его притяжательной форме ++ , что занимает меньше времени, чтобы обнаружить случай, когда шаблон не соответствует.
  • $ – конец строки.

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

Вложение в учебные регулярные выражения станет более ценным, если вам нужно будет продлить ваши требования позже.

Рекомендации

  • Синтаксис регулярного выражения Java

Другой вариант – использовать Apache Commons StringUtils , в частности StringUtils.stripEnd

Я немного изменил оригинальный метод java.lang.String.trim() и он должен работать:

Самый практичный ответ – это @ Micha’s, Ахмад обращается к тому, чего вы хотели, но вот что я придумал, если вы предпочтете не использовать незнакомые инструменты или не увидеть конкретный подход.

На мой взгляд, лучший способ:

Это не выделяет никакого временного объекта для выполнения задания и быстрее, чем использование регулярного выражения. Также он удаляет все пробелы, а не только «».

Вот очень короткая, эффективная и удобная для чтения версия:

В качестве альтернативы str.charAt(i) != ‘ ‘ Вы также можете использовать !Character.isWhitespace(str.charAt(i) если вы хотите использовать более широкое определение пробелов.

Строковое значение = «Добро пожаловать в java»;

Поэтому мы можем использовать

Spring framework дает полезный файл org.springframework.util.StringUtils.

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

Он использует опцию Java 8 Optional поэтому она не подходит для всех.

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

3070 просмотра

4 ответа

28 Репутация автора

На этот вопрос уже есть ответ здесь:

я уже нашел похожие темы, но они не очень помогли.

Мне нужно знать, как удалить пробелы ТОЛЬКО в конце строки.

Например: String a = “Good Morning it is a nice day “;

Должно быть: String a = “Good Morning it is a nice day”;

Вы видите, что есть три пробела в конце или что-то в этом роде. В качестве предложения я получил replaceAll (), но, как я уже сказал, я хочу удалить только оставшиеся пробелы в конце. Как я могу это сделать ? Я уже пробовал разные вещи, такие как прохождение строки:

Читать еще:  Acmon что это за программа?

С помощью кода выше я хотел проверить последние три символа строки, потому что этого достаточно. Этого достаточно для того, что я хочу сделать. Не будет случая с 99+ пробелами в конце (вероятно).

Но, как вы видите, я до сих пор не знаю, какой метод использовать или действительно ли это правильный путь.

Любые предложения, пожалуйста?

Ответы (4)

плюса

105 Репутация автора

Решение будет выглядеть примерно так.

Автор: Ryan Размещён: 01.01.2018 07:53

5 плюса

43516 Репутация автора

Вы можете использовать регулярное выражение:

удалить конечные пробелы и сохранить результат обратно в a

или используя цикл for:

Автор: Aomine Размещён: 01.01.2018 07:53

1 плюс

1452 Репутация автора

2 плюса

2853 Репутация автора

Если ваша цель состоит в том, чтобы вырезать только символы пробела в конце и сохранить первые символы пробела в вашей строке, вы можете использовать метод String класса replaceFirst() :

\s++ – один или несколько символов пробела (использование позитивных квантификаторов (посмотрите на Pattern класс в документации по API Java, вы перечислили все специальные символы, используемые в регулярных выражениях)),

Вы также можете посмотреть часть моего ответа перед редактированием:

Если вас не интересуют первые символы пробела в вводе, String класс String: предоставляет trim() метод. Это может быть быстрое решение в вашем случае, поскольку оно сокращает начальные и конечные пробелы данной строки.

Сколько пробелов будет Java String.отделка() удалить?

в Java у меня есть такая строка:

будет String.trim() удалить все пробелы с этих сторон или только одно пространство на каждом?

17 ответов

возвращает: Копия этой строки с удаленными начальным и конечным пробелами или эта строка, если у нее нет начального или конечного пробелов.

цитируется из Java 1.5.0 docs

(но почему вы просто не попробовали и не увидели сами?)

из исходного кода (декомпиляция) :

два while это означает, что все символы, Юникод которых находится ниже символов пробела, в начале и конце, удаляются.

Если вы сомневаетесь, напишите модульный тест:

NB: конечно тест (для JUnit + Hamcrest) не не

одна вещь, чтобы указать, хотя, это строка.trim имеет своеобразное определение “пробелов”. Он не удаляет пробелы Unicode, но также удаляет управляющие символы ASCII, которые могут не считаться пробелами.

этот метод может использоваться для обрезки пробелов от начала и конца строки; фактически, он также обрезает все управляющие символы ASCII.

Если возможно, вы можете использовать StringUtils Commons Lang.прокладки(), который также обрабатывает пробелы Unicode (и также является нулевым).

посмотреть API для класса String:

возвращает копию строки, с начальных и конечных пробелов.

пробелы с обеих сторон удаляется:

отметим, что trim() не изменяет экземпляр String, он вернет новый объект:

на основе Java docs здесь на .trim() заменяет ‘u0020’, который обычно известен как пробелы.

но обратите внимание, ‘u00A0’ (Unicode no-BREAK SPACE ) также рассматривается как пробел, и .trim() не удалит это. Это особенно распространено в HTML.

, чтобы удалить его, я использую :

обсуждался пример этой проблемы здесь.

пример Java trim() удаление пробелов:

из java docs (string class source),

обратите внимание, что после получения start и length он вызывает метод подстроки класса String.

trim() удалит все ведущие и конечные пробелы. Но имейте в виду: ваша строка не изменяется. trim() вместо этого вернет новый экземпляр string.

если ваш строковый ввод:

Да, выход будет, ” abc”; Но если ваш строковый ввод:

выход будет This is a test Поэтому trim удаляет пробелы только перед первым символом и после последнего символа в строке и игнорирует внутренние пробелы. Это часть моего кода, которая немного оптимизирует встроенный String метод обрезки удаление внутренних пробелов и удаляет пробелы до и после первого и последнего символа в строке. Надеяться это помогает.

он удалит все пробелы с обеих сторон.

очень важно то, что строка, полностью состоящая из “пробелов”, вернет пустую строку.

если string sSomething = “xxxxx” , где x подставка для пробелов, sSomething.trim() вернет пустую строку.

если string sSomething = “xxAxx” , где x подставка для пробелов, sSomething.trim() вернутся A .

если sSomething =”xxSomethingxxxxAndSomethingxElsexxx” , sSomething.trim() вернутся SomethingxxxxAndSomethingxElse обратите внимание, что количество x между словами не изменяется.

если вы хотите аккуратный packeted string combine trim() С регулярным выражением, как показано в этом сообщении:Как удалить дубликаты пробелов в строке с помощью Java?.

порядок бессмыслен для результата, но trim() сначала было бы более эффективно. Надеюсь, это поможет.

Читать еще:  Распознавание жестов движений на Android используя Tensorflow

чтобы сохранить только один экземпляр для строки, вы можете использовать следующее.

Java как заменить 2 или более пробелов одним пробелом в строке и удалить ведущие и trailing пробелы

Ищем быстрый и простой способ в Java изменить эту строку

к чему-то, что выглядит вот так

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

Что-то вроде этого отчасти приводит меня туда

но не совсем так.

21 Ответов

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

  • String.trim()
    • Возвращает копию строки с опущенными значениями leading и trailing whitespace.
  • regular-expressions.info/Repetition

Нет trim() regex

Это также можно сделать только с одним replaceAll , но это гораздо менее читабельно, чем решение trim() . Тем не менее, он представлен здесь только для того, чтобы показать, что может сделать regex:

Есть 3 альтернативы:

  • ^_+ : любая последовательность пробелов в начале строки
    • Сопоставьте и замените на $1 , который захватывает пустую строку
  • _+$ : любая последовательность пробелов в конце строки
    • Сопоставьте и замените на $1 , который захватывает пустую строку
  • (_)+ : любая последовательность пробелов, которая не соответствует ни одному из вышеперечисленных, означает, что она находится в середине
    • Сопоставьте и замените на $1 , который захватывает один пробел

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

Тебе просто нужно . :

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

Чтобы проверить это быстро попробуйте:

Используйте метод Apache commons StringUtils.normalizeSpace(String str) . Смотрите документы здесь

Это отлично сработало для меня: sValue = sValue.trim().replaceAll(“\s+”, ” “);

Чтобы исключить пробелы в начале и в конце строки, используйте метод String#trim() . А потом используй свой mytext.replaceAll(“( )+”, ” “) .

Вы можете сначала использовать String.trim() , а затем применить команду regex replace к результату.

Это будет соответствовать более чем одному пространству.

Попробуй вот это.

пример кода

OUTPUT

Во-первых, он заменит все пространства одним пространством. Чем мы должны предполагать сделать trim String , потому что начало String и конец String он заменит все пространство на одно пространство, если String имеет пробелы в начале String и конце String , поэтому нам нужно их обрезать. Чем вы получите желаемое String .

Вы также можете использовать lookarounds.

OR

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

Пример:

Удаляет только ведущие пробелы & trailing.

От Java Doc, “Возвращает строку, значение которой равно этой строке, при этом все ведущие и trailing whitespace удаляются.”

replace(), replaceAll()

Заменяет все пустые строки в слове,

Примечание:” s+ ” – это регулярное выражение, аналогичное символу пустого пробела.

Это сработало для меня

где фильтр следующие функции и проверки входной строки:

сокращения пространства во-первых

заглавными буквами пишется первая буква, А строчными – все остальное

вы должны сделать это вот так

поставьте + внутри круглых скобок.

Потоковая версия, фильтры пробелов и вкладок.

Используйте regex “s” и замените на ” ” .

Затем используйте String.trim .

проверить это...

Если строка содержит только один пробел, то replace() не будет заменять,

Если пробелов больше одного, то replace() действие выполняет и удаляет пробел.

Чтобы подсчитать количество пробелов в строке.

Шаблон.цитата(“?”) возвращает строку литерального шаблона.

Мой метод, прежде чем я нашел второй ответ, используя regex как лучшее решение. Может быть, кому-то нужен этот код.

Следующий код будет сжимать любые whitespace между словами и удалять любые в начале и конце строки

Это приведет к выходу a string with many spaces, a tab and a newline

Обратите внимание, что все непечатаемые символы, включая пробелы, табуляции и новые строки, будут сжаты или удалены

Дополнительную информацию смотрите в соответствующей документации:

Здравствуйте, извините за задержку! Вот самый лучший и самый эффективный ответ, который вы ищете:

Таким образом, ваш вывод из этого примера будет: Меня зовут kingkon.

Однако этот метод удалит также “n”, который может иметь ваша строка. Так что если вы не хотите этого просто используйте этот простой метод:

И если вы хотите убрать ведущие и trailing пробелы тоже просто добавьте:

Читать еще:  NewSQL: SQL никуда не уходит

Пожалуйста, используйте код ниже

Приведенное выше решение представляет собой алгоритм со сложностью O(n) без использования какой-либо функции java.

Похожие вопросы:

Я хотел бы удалить все ведущие и trailing пробелы. А также заменить несколько пробелов одним пробелом внутри строки, чтобы все слова в строке были разделены точно одним пробелом. Я мог бы достичь.

Как я могу заменить несколько пробелов в строке только одним пробелом в C#? Пример: 1 2 3 4 5 было бы: 1 2 3 4 5

Как удалить пробелы из строкового объекта в C++. Например, как удалить ведущие и trailing пробелы из приведенного ниже строкового объекта. //Original string: This is a sample string //Desired.

For ex: __I_love___India___; в этой строке я хочу удалить ведущие и trailing пробелы полностью и несколько пробелов С в строке в java. т. е. выход должен быть I love India ;

Во всех других связанных сообщениях люди спрашивали об удалении ведущих или / и trailing пробелов в строке java. Теперь мой вопрос заключается в том, как получить ведущие или trailing пространства.

Я пытаюсь определить строку, которую пользователь может ввести в систему с помощью Regex в Java. Строка не должна содержать trailing, ведущие или двойные пробелы, но может содержать множество.

Мне нужно заменить несколько пробелов между словами в строке одним пробелом, используя java. Для этого я использовал приведенный ниже код. Но это не работает, когда одно из слов в этих двух словах.

Функция normalize-space удаляет ведущие и trailing whitespace и заменяет последовательности whitespace символов одним пробелом. Как я могу заменить только последовательности символов whitespace.

У меня есть выражение regex для удаления ведущих и trailing белых пробелов, а также для замены всех других белых пробелов в строке. Но я не знаю, как сделать так, чтобы это сработало вместе. Итак.

Я хочу объединить несколько пространств в одно пространство(пространство также может быть табуляцией) и удалить trailing/leading пробелы. Например. string

Trim (программирование)

Trim (программирование)

Trim или strip — часто используемое название для строковой функции, которая удаляет начальные и конечные пробелы.

Содержание

Варианты

Наиболее популярные варианты функции trim удаляют пробелы только в начале и в конце строк. Обычно они называются ltrim и rtrim соответственно, или в случае языка Python, — lstrip и rstrip . В C# используется название TrimStart и TrimEnd , а в Common Lisp string-left-trim и string-right-trim . В Паскале и в Java нет встроенных вариантов, хотя в Delphi присутствуют функции TrimLeft и TrimRight . [1]

Многие функции trim имеют опциональный параметр для определения списка символов к удалению. Например, PHP и Python позволяют задавать такой опциональный параметр, в то время как Паскаль и Java этого не дают. В функции string-trim языка Common Lisp требуется параметр (называемый character-bag). В C++ библиотека Boost определет символы пробела в соответствии с локалью, а также предлагает варианты параметра предиката для выбора того, какие символы удалять.

В отдельных случаях trim возвращает определённый результат, если после операции удаления не осталось символов. Например, в StringUtils из Apache Jakarta Project есть функция, называемая stripToNull , которая возвращает null взамен пустой строки.

Альтернативой удаления строки является нормализация пробелов, когда в дополнение к удалению символов пробела по краям строки также любые последовательности пробелов внутри строки заменяются одним пробелом. Нормализация пробелов выполняется Trim() приложениях работы с таблицами (включая Excel, Calc, Gnumeric и Google Docs), и функцией normalize-space() в XSLT и XPath.

В то время как большинство алгоритмов возвращают новую (усечённую строку), некоторые изменяют первоначальную строку in-place, преобразуя структуру данных. Примечательно, что библиотека Boost позволяет либо усечение «in-place», либо возвращать усечённую копию строки.

Определение символов пробела

Символы, которые относят к пробелам, различаются в разных языках программирования и их реализациях. Например, C традиционно считает таковыми символы пробела, табуляции, перевода строки и возврата каретки, в то время как языки, поддерживающие юникод, обычно относят сюда все символа пробелов юникода. Некоторые реализации вместе с символами пробелом также относят сюда и управляющие символы ASCII (непечатаемые символы).

Метод trim в Java считает пробелами и управляющие коды, тогда как метод isWhitespace() [2] распознаёт символы пробелов юникода.

Применение

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

голоса
Рейтинг статьи
Ссылка на основную публикацию
Статьи c упоминанием слов: