我在需要解析的文件中包含以下内容。如何解析字符串并在Java中找到双打
((-2, -1), (4, 2)) ((-1.2, 0), (0, 0))
((0, 0), (10, -1))
((5, 3), (5, 4)) ((5, 1) , (5, 5))
((8, 3), (10, 3))
((8, 5), (11.5, 5))
到目前为止,我已通过文件扫描和采取线输入线,保存为字符串,所以一个字符串将是((-2,-1),(4,2))( (-1.2,0),(0,0))。我的问题是从这里去哪里。我如何从这个字符串中提取双打。我曾尝试使用括号作为分隔符,并将所有括号更改为逗号,然后使用逗号作为分隔符,但这两种方式都会给我带来错误。有任何想法吗?
Exception in thread "main" java.util.regex.PatternSyntaxException: Unclosed group near index 1 at java.util.regex.Pattern.error(Unknown Source) at
java.util.regex.Pattern.accept(Unknown Source) at
java.util.regex.Pattern.group0(Unknown Source) at
java.util.regex.Pattern.sequence(Unknown Source) at
java.util.regex.Pattern.expr(Unknown Source) at
java.util.regex.Pattern.compile(Unknown Source) at
java.util.regex.Pattern.<init>(Unknown Source) at
java.util.regex.Pattern.compile(Unknown Source) at
java.lang.String.replaceAll(Unknown Source)
这样做的全部目的是从这些双打创建点。例如,((0,0),(10,-1))将创建两个点(0,0)和(10,-1)。我创建了点类,并且在构造函数中需要两个双精度值。 这里是我的尝试:
String toParse = "((0, 0), (10, -1))";
toParse.replaceAll("(", ",");
toParse.replaceAll(")", ",");
Scanner stringScanner = new Scanner(toParse);
stringScanner.useDelimiter(",");
while(stringScanner.hasNextDouble()){
ECT
你是什么意思,'给你错误'?邮政编码。我们无法猜测到底发生了什么。 – bmargulies 2011-04-02 20:19:15
这里的预期产出/结果是什么?你想从文本中解析出什么? – Sapph 2011-04-02 20:20:38
这听起来像你只是在尝试不同的事情,而没有考虑他们实际做了什么。对于给定的输入行,您需要的输出是什么?向我们展示迄今已尝试的代码。 – 2011-04-02 20:21:42