我有一个像这样的字符串 -
(a,b=7)
如何从上面的字符串中提取a,b和7。我需要将这些值传递给我的构造函数。
Graph.Edge("a", "b", 7)
有没有简单的方法可以做到这一点?我需要使用正则表达式吗?
答案 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]