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

How to extract strings from a string which has bracket?

我有一个这样的字符串 -

(a,b=7)

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

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

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

使用正则表达式你可以做到:

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
}

您可以使用 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]