Меню Закрыть

Java удалить символы из строки

Содержание

Есть список ненужных символов, допустим String taboo = "1234567890!@#$%^&*()_+!№;%:?*/\"

И есть строка String s = sc.nextLine();

Как из вводимой строки удалить(заменить пробелами) все символы, которые есть в списке taboo ?

4 ответа 4

Если вы читаете текст построчно и этот текст достаточно длинный, то, возможно есть смысл сделать таким образом:

Две строки кода в средине метода main — это ваш цикл. В итоге на выходе вы получите объект StringBuilder в данном контексте именованный как result.

В этом случае приходится создавать дополнительную коллекцию типа сет, однако при большом объеме текста использование этой коллекции и StringBuilder должно окупиться и с точки зрения времени выполнения, и с точки зрения системных ресурсов.

Попробуйте протестировать на время в реальных условиях, выложите результат. Мне тоже интересно.

Так что я пытаюсь сделать плагин для Bukkit API для Minecraft, и у меня возникла эта проблема со строками, я не могу удалить определенную часть String. Если бы вы могли помочь, это было бы очень признательно.

Поэтому проблема возникает, когда я использую строку кода: iter.next(). ToString();

Эта строка кода выводит на экран: "ItemStack "

Как бы удалить часть "x 1" в String и сохранить остальное после этого, если что-то есть?

Вот список вещей, которые я пробовал:

java string api minecraft bukkit

3 ответа

1 Решение Pshemo [2014-09-14 02:30:00]

Похоже, вы хотите заменить [space(s)]x[space(s)][digit(s)]> только с помощью > . Если это так, вы можете попробовать использовать

replaceAll использует регулярное выражение (regex) в качестве первого аргумента. В regex s (написанное как "\s" ) представляет собой любое пробельное выражение + представляет собой одно или несколько вхождений ранее описанного элемента, что означает, что "\s+" представляет одно или несколько пробелов. Теперь d представляет цифру (символ в диапазоне 0-9 ). Также < и >являются специальными символами, поэтому, чтобы избежать их, мне нужно было добавить \ before > .

Читайте также:  Сообщение на тему питание живых организмов

ОБНОВЛЕНИЕ после изменения требований:

\w представляет любой символ в диапазоне az AZ 0-9 и _ . Я окружил \w+ круглыми скобками для создания группы, в которой будет храниться DIAMOND_SWORD поэтому я мог бы использовать совпадение с ней в замещающей части через $[groupID] . Поскольку это наша первая группа, ее число равно 1 поэтому мы могли бы использовать <$1>вместо замены целых

с помощью всего лишь

0 Bohemian [2014-09-14 03:01:00]

Предполагая, что вы хотите удалить все, кроме первого "слова" внутри фигурных скобок:

Уроки программирования, алгоритмы, статьи, исходники, примеры программ и полезные советы

ОСТОРОЖНО МОШЕННИКИ! В последнее время в социальных сетях участились случаи предложения помощи в написании программ от лиц, прикрывающихся сайтом vscode.ru. Мы никогда не пишем первыми и не размещаем никакие материалы в посторонних группах ВК. Для связи с нами используйте исключительно эти контакты: [email protected], https://vk.com/vscode

Удаление символа из строки Java

В языке Java для строковых полей типа String отсутствует метод удаления символа с указанным индексом (в C# это метод Remove). Поэтому, чтобы произвести удаление символа из строки в Java нужно пойти на некоторые ухищрения. Рассмотрим в данном уроке один из таких способов.

Удаление символа с помощью комбинации методов substring

В Java у строк есть метод substring(int startIndex, int endIndex), который возвращает подстроку из исходной строки с позиции startIndex (включительно) до endIndex (не включительно). Нумерация индексов начинается с нуля.

С помощью данного метода извлечём из исходной строки две подстроки до и после удаляемого элемента (его индекс обозначим, как deletePosition) и соединим их в одну. Тем самым в новой строке будет отсутствовать символ с индексом deletePosition.

Рекомендуем к прочтению

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

Ваш адрес email не будет опубликован.