как удалить символ скобок в строке (java)
Я хочу удалить все типы символов скобок (пример: [],(),{}) в строке с помощью java.
Я попытался использовать этот код:
String test = "watching tv (at home)";
test = test.replaceAll("(","");
test = test.replaceAll(")","");
но это не работает, помогите мне пожалуйста.
6 ответов
чтобы удалить все знаки препинания, которые включают все скобки, фигурные скобки и sq. скобки... а на вопрос:
String test = "watching tv (at home)";
test = test.replaceAll("\p{P}","");
первый аргумент replaceAll
принимает регулярное выражение.
все скобки имеют значение в регулярном выражении: скобки используются в регулярном выражении для ссылки группы захвата, квадратные скобки используются для класс персонажа & фигурные скобки используются для совпадения символов. Поэтому все они должны быть спасены...Однако здесь символы могут быть просто заключены в класс персонажа С как раз избегать необходимо для квадрата скобки
test = test.replaceAll("[\[\](){}]","");
первый аргумент, передаваемый replaceAll()
метод должен быть регулярным выражением. Если вы хотите соответствовать этим буквальным символам скобки, вам нужно бежать \(
, \)
них.
вы можете использовать следующее, Чтобы удалить символы скобок. свойство Unicode \p{Ps}
будет соответствовать любому виду открывающую скобку и свойство Unicode \p{Pe}
соответствует любому виду закрывающего кронштейна.
String test = "watching tv (at home) or [at school] or {at work}()[]{}";
test = test.replaceAll("[\p{Ps}\p{Pe}]", "");
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("{", " ");
test = test.replace("}", " ");
если вы работаете с текстами, я рекомендую вам заменить скобки пустым пространством, чтобы избежать объединения слов:watching tv(at home) -> watching tvat home