Удалить квадратные скобки java

Java заменяет все квадратные скобки в строке

Я хочу убрать квадратные скобки из строки, но я не знаю как.

String str = "[Chrissman-@1]"; str = replaceAll("[]", ""); String[] temp = str.split("-@"); System.out.println("Nickname: " + temp[0] + " | Power: " + temp[1]); 

но мой результат: [Chrissman | 1] Квадратные скобки не снимаются.

Я попытался использовать другое регулярное выражение: «[.*?]» , «[d+]» но результат тот же, квадратные скобки все еще прикреплены к строке.

str.replaceAll("]", ""); str.replaceAll("[", ""); 
Exception in thread "Thread-4" java.util.regex.PatternSyntaxException: Unclosed character class near index 0 [ ^ at java.util.regex.Pattern.error(Unknown Source) at java.util.regex.Pattern.clazz(Unknown Source) at java.util.regex.Pattern.sequence(Unknown Source) at java.util.regex.Pattern.expr(Unknown Source) at java.util.regex.Pattern.compile(Unknown Source) at java.util.regex.Pattern.(Unknown Source) at java.util.regex.Pattern.compile(Unknown Source) at java.lang.String.replaceAll(Unknown Source) 

7 ответов

метод replaceAll пытается соответствовать строковому литералу [] который не существует в String попробуйте заменить эти элементы отдельно.

String str = "[Chrissman-@1]"; str = str.replaceAll("\[", "").replaceAll("\]",""); 

ваше регулярное выражение соответствует (и удаляет) только последующие квадратные скобки. Используйте этот код:

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

в настоящее время вы пытаетесь удалить точно строка [] — две квадратные скобки, между которыми ничего нет. Вместо этого, вы хотите удалить все [ и отдельно удалить все ] .

лично я бы избегал использования replaceAll здесь, поскольку это вводит больше путаницы из-за части regex-я бы использовал:

String replaced = original.replace("[", "").replace("]", ""); 

используйте только методы, которые принимают регулярные выражения, если вы действительно хотите сделать полное сопоставление шаблонов. Когда вы просто хотите заменить все вхождения фиксированной строки, replace проще читать и понимать.

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

String str = "[Chrissman-@1]"; String[] temp = str.replaceAll("[\[\]]", "").split("-@"); System.out.println("Nickname: " + temp[0] + " | Power: " + temp[1]); 
Nickname: Chrissman | Power: 1 

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

String data = "[yourdata]"; String regex = "\[|\]"; data = data .replaceAll(regex, ""); System.out.println(data); 
Use this line:) String result = strCurBal.replaceAll("[(" what ever u need to remove ")]", ""); String strCurBal = "(+)3428"; Log.e(" before omit ", strCurBal); String result = strCurBal.replaceAll("[()]", ""); Log.e(" Result Omit ", result); o/p : before omit : (+)3428 Result Omit : +3428 String finalVal = result.replaceAll("[+]", ""); Log.e("finalVal ", finalVal); finalVal : 3428
String str, str1; Scanner sc = new Scanner(System.in); System.out.print("Enter a String : "); str = sc.nextLine(); str1 = str.replaceAll("[aeiouAEIOU]", ""); System.out.print(str1); 

Источник

Удаление фигурных, квадратных, круглых скобок

Нужно удалить из строки все фигурные, квадратные и круглые скобки. Как это лучше сделать? В регуляторных выражениях, как ни пытался, не получилось разобраться.
Пытался удалять через replaceAll(), но exception из-за регулярных выражений.
Может есть какие идеи? Спасибо.

Как в eclipse настроить расположение фигурных скобок?
Как в eclipse настроить расположение фигурных скобок? То есть я хочу чтобы классы и методы.

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

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

Разница инициализаций с помощью круглых и фигурных скобок
В чем разница между () и <> при инициализации указателя ? SharedPointer(): ptr< nullptr >.

Лучший ответ

Сообщение было отмечено Egorika как решение

Решение

public class Main \\) }

GreeNicee, спасибо, работает! А если у меня массив таких разных символов, которые зарезервированы как регулярные, как мне их заменить? То есть у меня, к примеру, есть строка «++» в массиве arr[] и я хочу сделать

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

public class Main { public static void main(String[] args) { String str = "+asdAD++asd+asdasd++asd++++A"; String[] arr = new String[1]; arr[0] = "\\+\\+"; System.out.println(str.replaceAll(arr[0], "")); } }

Источник

Как удалить символ скобки в строке (Java)

Я хочу удалить символ всех типов скобок (пример: [],(), <>) в строке с помощью java. Я попытался использовать этот код:

String test = "watching tv (at home)"; test = test.replaceAll("(",""); test = test.replaceAll(")",""); 

Вы должны добавить \ * перед * ( Попробуйте это . String test = «смотря телевизор (дома)»; test = test.replaceAll («\ («, «»). ReplaceAll («\)», «» );

6 ответов

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

String test = "watching tv (at home)"; test = test.replaceAll("\\p",""); 

@MuhammadHaryadiFutra Будьте осторожны, это решение удаляет также такие символы, как . , , , ; , так далее.

это не только удаляет скобки, но также и другие символы, такие как «/» и «-«. и т. д. (16180856-04-20170407-ad / wav / D104) изменен на 161808560420170407adwavD104

@AdnanAli, пожалуйста, прочитайте ответ правильно, если вы пропустили это, то прочитайте комментарий над вашим 🙂

Первый аргумент replaceAll принимает регулярное выражение.

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

Первый аргумент, переданный методу replaceAll() , должен быть регулярным выражением. Если вы хотите совместить эти буквенные символы, вам нужно вывести \\( , \\) их.

String test = "watching tv (at home) or [at school] or ()[]<>"; test = test.replaceAll("[\\p\\p]", ""); System.out.println(test); //=> "watching tv at home or at school or at work" 

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

String test = "watching tv (at home)"; test = test.replaceAll("\\(",""); test = test.replaceAll("\\)",""); 

Также, чтобы удалить все скобки, попробуйте

String test = "watching tv (at home)"; test = test.replaceAll("[\\(\\)\\[\\]\\]",""); 

«\(» приведет к ошибке компиляции, так как это недопустимый управляющий символ. «\\(» это то, что нужно

Вы можете использовать String.replace вместо String.replaceAll для лучшей производительности, поскольку он ищет точную последовательность и не нуждается в регулярных выражениях.

String test = "watching tv (at home)"; test = test.replace("(", " "); test = test.replace(")", " "); test = test.replace("[", " "); test = test.replace("]", " "); test = test.replace("", " "); 

Если вы работаете с текстами, я рекомендую вам заменить скобки пустым пространством, чтобы избежать объединения слов: watching tv(at home) -> watching tvat home

Источник

Замена Java все квадратные скобки в строке

Я хочу удалить квадратные скобки из строки, но я не знаю как.

String str = "[Chrissman-@1]"; str = replaceAll("\\[\\]", ""); String[] temp = str.split("-@"); System.out.println("Nickname: " + temp[0] + " | Power: " + temp[1]); 

Но мой результат: [Chrissman | 1] квадратные скобки не становится удаленным.

Я пытался использовать другой regex: «\\[.*?\\]» , «\\[\\d+\\]» но результатом является то же, квадратные скобки, все еще присоединенные на строке.

str.replaceAll("]", ""); str.replaceAll("[", ""); 
Exception in thread "Thread-4" java.util.regex.PatternSyntaxException: Unclosed character class near index 0 [ ^ at java.util.regex.Pattern.error(Unknown Source) at java.util.regex.Pattern.clazz(Unknown Source) at java.util.regex.Pattern.sequence(Unknown Source) at java.util.regex.Pattern.expr(Unknown Source) at java.util.regex.Pattern.compile(Unknown Source) at java.util.regex.Pattern.(Unknown Source) at java.util.regex.Pattern.compile(Unknown Source) at java.lang.String.replaceAll(Unknown Source) 

7 ответов

replaceAll метод пытается соответствовать Строковому литералу [] , который не существует в String попытка, заменяющая эти объекты отдельно.

String str = "[Chrissman-@1]"; str = str.replaceAll("\\[", "").replaceAll("\\]",""); 

Ваши соответствия regex (и удаляет), только последующие квадратные скобки. Используйте это вместо этого:

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

String str = "[Chrissman-@1]"; String[] temp = str.replaceAll("[\\[\\]]", "").split("-@"); System.out.println("Nickname: " + temp[0] + " | Power: " + temp[1]); 
Nickname: Chrissman | Power: 1 

Вы в настоящее время пытаетесь удалить точный строка [] — две квадратных скобки ни с чем между ними. Вместо этого Вы хотите удалить весь [ и отдельно удалить весь ] .

Лично я избегал бы использования replaceAll здесь, поскольку это представляет больше беспорядка из-за regex части — я использовал бы:

String replaced = original.replace("[", "").replace("]", ""); 

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

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

Источник

Как убрать скобки [] из ArrayList # toString ()?

Я создал список массивов на Java, который выглядит примерно так:

 public static ArrayList error = new ArrayList<>(); for (int x= 1; x

Когда я печатаю ошибки, я получаю их как

Теперь я хочу удалить квадратные скобки ([]) из этого списка массивов. Я думал, что могу использовать метод errors.remove («[«), но потом обнаружил, что это просто логическое значение и отображает истину или ложь. Может ли кто-нибудь подсказать, как я могу этого добиться?

Спасибо заранее за вашу помощь.

11 ответов

Вероятно, вы звоните System.out.println, чтобы распечатать список. В JavaDoc говорится:

This method calls at first String.valueOf(x) to get the printed object's string value 

Скобки добавлены реализацией ArrayList toString . Чтобы удалить их, вы должны сначала получить String:

String errorDisplay = errors.toString(); 

А затем снимите скобки примерно так:

errorDisplay = errorDisplay.substring(1, errorDisplay.length() - 1); 

Не рекомендуется полагаться на реализацию toString() . toString() предназначен только для создания удобочитаемого представления для ведения журнала или отладки. Так что лучше построить String самостоятельно во время итерации:

List errors = new ArrayList<>(); StringBuilder sb = new StringBuilder(); for (int x = 1; x sb.setLength(sb.length() - 1); String errorDisplay = sb.toString(); 

Обратите внимание, что это не массив, а просто строка, отображающая содержимое списка. Чтобы создать массив из списка, вы можете использовать list.toArray ():

// create a new array with the same size as the list Integer[] errorsArray = new Integer[errors.size()]; // fill the array errors.toArray(errorsArray ); 

String output = errors.toString().replaceAll(«(^\\[|\\]$)», «»);

Источник

Читайте также:  String end line java
Оцените статью