正则表达式和模式

时间:2011-09-19 16:41:35

标签: java regex

MP(((1.1 1.2,2.1 1.5),(3.1 4.1)),((8.1 6.2,2.5 4.5),(3.8 4.9)),((7.1 6.2,2.5 5.5),(3.8 4.9)))

在Java中我如何分割它们以获得双重值。什么样的模式和要求? 但不仅是双倍,括号层索引

谢谢。

如果输出类似于以下方式,我将不胜感激

支架1
 子括号1:

第1点:1.1 1.2

第2点:2.1 1.5

子括号2:

第1点:3.1 4.1

括号2

子括号1:

第1点:8.1 6.2

第2点:2.5 4.5

子括号2:

第1点:3.8 4.9

...

2 个答案:

答案 0 :(得分:3)

好吧,如果您只想获得双打列表,可以使用以下内容:

String input = "(((1.1 1.2, 2.1 1.5),(3.1 4.1)),((8.1 6.2, 2.5 4.5),(3.8 4.9)),((7.1 6.2, 2.5 5.5),(3.8 4.9)))";
Matcher matcher = Pattern.compile("\\d+\\.\\d+").matcher(input);
while (matcher.find()) {
    double d = Double.parseDouble(matcher.group());
    System.out.println(d);  //or alternatively, add to a list
}

答案 1 :(得分:1)

我认为你只需要拆分任何这些非数字字符 - 听起来它们根本不重要,只是值:

value.split("[\\(\\), ]+")

然后使用String解析每个Double.parseDouble()