如何从有括号的字符串中提取字符串?
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]
我有一个这样的字符串 -
(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]