Содержание
Есть список ненужных символов, допустим 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.