源程序是实现加减乘除的一个简单计算器的。
其中一句是这样的:
Pattern entryOfExpression = Pattern.compile("[0-9]+(\\.[0-9]+)?|\\(|\\)|\\+|-|\\*|/");
这句意思应该是想匹配一个整数或小数,或者加减乘除和括号的符号。
我不明白为什么“\\.”表示的是“.”,而不是“\.”表示“.”呢?!
不是“\”是转义符吗?!现在这样子不就变成“\\”才是转义符吗?!另外,小弟在NetBeans 6.0.1下编译的。若把“\\”改成“\”后编译会提示该行“非法转义字符”错误。请指点~~~
其中一句是这样的:
Pattern entryOfExpression = Pattern.compile("[0-9]+(\\.[0-9]+)?|\\(|\\)|\\+|-|\\*|/");
这句意思应该是想匹配一个整数或小数,或者加减乘除和括号的符号。
我不明白为什么“\\.”表示的是“.”,而不是“\.”表示“.”呢?!
不是“\”是转义符吗?!现在这样子不就变成“\\”才是转义符吗?!另外,小弟在NetBeans 6.0.1下编译的。若把“\\”改成“\”后编译会提示该行“非法转义字符”错误。请指点~~~
编译器需要的那个\,可以跟火龙学正则去,他翻译的那个不错滴
也就是说,java字符串"\\."表示正则式"\.",正则式"\."表示"."
改 成:Pattern.compile("[()+*/-]|[0-9]+(\\.[0-9]+)?");