метод получения строки внутри фигурных скобок с использованием split или tokenizer - PullRequest
0 голосов
/ 30 октября 2018
String s = "author= {insert text here},";

Пытаясь получить внутри строки, я огляделся по сторонам, но не смог найти разрешение только с помощью split или tokenizer ...

пока я делаю это

arraySplitBracket = s.trim().split("\\{", 0);

, что дает мне insert text here}, в массиве [1], но id - это способ не прикреплять }

также пытался

StringTokenizer st = new StringTokenizer(s, "\\{,\\},");

Но он дал мне author= в качестве вывода.

Ответы [ 4 ]

0 голосов
/ 30 октября 2018
String s = "auther ={some text here},"; 
s =  s.substring(s.indexOf("{") + 1); //some text here},
s = s.substring(0, s.indexOf("}"));//some text here
System.out.println(s);
0 голосов
/ 30 октября 2018
public static void main(String[] args) {
        String input="{a c df sdf TDUS^&%^7 }";     
        String regEx="(.*[{]{1})(.*)([}]{1})";
        Matcher matcher = Pattern.compile(regEx).matcher(input);            

        if(matcher.matches()) {         
            System.out.println(matcher.group(2));
        }
}
0 голосов
/ 30 октября 2018

Вы можете использовать \\{([^}]*)\\} Regex, чтобы получить строку между фигурными скобками.

Кодовая привязка:

String str = "{insert text here}";
        Pattern p = Pattern.compile("\\{([^}]*)\\}");
        Matcher m = p.matcher(str);
        while (m.find()) {
          System.out.println(m.group(1));
        }

Выход:

insert text here
0 голосов
/ 30 октября 2018

Как насчет получения подстроки путем исключения символа в arraySplitBracket.length()-1

Что-то вроде

arraySplitBracket[1] = arraySplitBracket[1].substring(0,arraySplitBracket.length()-1);

Или использовать функцию Stall Class replaceAll для замены}?

...