@Febel
КЕК

JAVA. Как поставить однку скобку в String?

Здравствуйте. мне нужно разделить String именно тогда, когда открывается скобка.

String str = word(blabla);
Я хочу разделить текст начиная с первой скобки и затем с substring убрать последнюю скобку что бы получить с этого текста только blabla.

String[] pieces = str.split("(") - так делать нельзя к сожалению(

а потом я хотел сделать так:
String a = pieces[1].substring(0,pieces[1].lenght()-1)

Итог должен быть такой: blabla.

Как мне достать blabla из скобок, если мне не удасться это сделать с помощью split?

P.S длина word и blabla может быть разной
  • Вопрос задан
  • 1888 просмотров
Решения вопроса 3
@n00ker
@Test
    public void splitString(){
        String source = "aaaaaaaaaaa(bbbbbbbbbbbbbb(ccccc";
        String[] split = source.split("\\(");
        assertEquals(3, split.length);
    }
Ответ написан
Комментировать
sergey-gornostaev
@sergey-gornostaev Куратор тега Java
Седой и строгий
String expr = "String str = word(blabla);";
int openParenPosition = expr.indexOf("(");
int closeParenPosition = expr.indexOf(")");
String arg = expr.substring(openParenPosition + 1, closeParenPosition);
Ответ написан
Комментировать
@longcat
Самое главное, что нужно понять, это то, то split() принимает паттерн для регулярного выражения, а символ скобки является спец-символом, который нужно экранировать для его поиска. Таким же спец-символом является обратный слеш, но уже и для строки, а не только для регулярного выражения. Следовательно слеш также нужно экранировать.
В результате для передачи корректной строки регулярного выражения, мы должны отправить строку \( , в которой нужно экранировать слеш в начале.
Получается в коде вы будете видеть string.split("\\(");
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

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