如何从包含括号的字符串中提取字符串?

时间:2015-02-15 19:33:49

标签: java regex string split

我有一个像这样的字符串 -

(a,b=7)

如何从上面的字符串中提取a,b和7。我需要将这些值传递给我的构造函数。

Graph.Edge("a", "b", 7)

有没有简单的方法可以做到这一点?我需要使用正则表达式吗?

2 个答案:

答案 0 :(得分:1)

使用正则表达式可以:

String str = "(a,b=7)";

Pattern p = Pattern.compile("\\((.*?),(.*?)=(\\d+)\\)");
Matcher m = p.matcher(str);
if (m.matches()) {
    System.out.println(m.group(1));                    // a
    System.out.println(m.group(2));                    // b
    System.out.println(Integer.parseInt(m.group(3)));  // 7
}

答案 1 :(得分:1)

您可以使用string.split方法。

String s = "(a,b=7)";
String parts[] = s.split("\\W+");
ArrayList<String> list = new ArrayList<String>(Arrays.asList(parts));
list.removeAll(Arrays.asList("", null));
System.out.println(list);

输出:

[a, b, 7]