【发布时间】:2015-08-19 19:07:20
【问题描述】:
我正在解决一个关于 spoj 的问题,它给出了一个表达式,我必须评估那个表达式。就像“7+5”是给定的表达式,我必须评估并打印 12。
这是我的代码
public class EXPR2 {
public static void main(String arg[]) throws IOException {
BufferedReader input = new BufferedReader(new InputStreamReader(System.in));
int t = Integer.parseInt(input.readLine());
while (t-- > 0) {
String expression = input.readLine();
String[] components = new String[3];
int ans = 0;
if (expression.contains("+")) {
components = expression.split("+");
ans = Integer.parseInt(components[0]) + Integer.parseInt(components[1]);
} else if (expression.contains("-")) {
components = expression.split("-");
ans = Integer.parseInt(components[0]) + Integer.parseInt(components[1]);
} else if (expression.contains("*")) {
components = expression.split("*");
ans = Integer.parseInt(components[0]) * Integer.parseInt(components[1]);
} else {
components = expression.split("/");
ans = Integer.parseInt(components[0]) / Integer.parseInt(components[1]);
}
System.out.println(ans);
}
}
}
但是,我遇到了异常:
Exception in thread "main" java.util.regex.PatternSyntaxException: Dangling meta character '+' near index 0
+
^
at java.util.regex.Pattern.error(Pattern.java:1955)
at java.util.regex.Pattern.sequence(Pattern.java:2123)
at java.util.regex.Pattern.expr(Pattern.java:1996)
at java.util.regex.Pattern.compile(Pattern.java:1696)
at java.util.regex.Pattern.<init>(Pattern.java:1351)
at java.util.regex.Pattern.compile(Pattern.java:1028)
at java.lang.String.split(String.java:2368)
at java.lang.String.split(String.java:2410)
at EXPR2.main(EXPR2.java:15)
怎么了?
【问题讨论】:
-
在各种不同的输入上,它给出不同的行号。
标签: java regex string exception