【发布时间】:2013-05-30 07:35:18
【问题描述】:
当我使用“+”、“*”、“(”和“)”时,我不断收到关于悬空元字符的错误。
我已经尝试在正则表达式中转义这些字符,但我仍然得到错误。这就是我所拥有的:
"[-\\+\\*/%\\(\\)]"
更新:
测试:
String input = "+";
String vals = new WNScanner(input).getNextToken(); //**********
System.out.println("token: " + vals);
System.out.println(vals.matches("[-+*/%()]"));
来自另一个班级:
...
String expression = input;
...
public String getNextToken() {
String[] token = {""};
if (expression.length() == 0)
return "";
token = expression.split("\\s");
recentToken = token[0];
expression = expression.replaceFirst(token[0], ""); //*************
expression = expression.trim();
return token[0];
}
*这些行有例外。
【问题讨论】:
-
这些都不需要在“[]”中转义反斜杠(但是,“-”必须是“[]”中的第一个字符)。
-
@ShadowCreeper 哦。但如果我不包含反斜杠,我仍然会收到错误消息。有什么想法吗?
-
在问题中发布您的尝试(代码)并带有错误消息(您可以将其缩减为一个简单的类或单个函数)。
-
@ShadowCreeper 我更新了我的帖子。希望清楚
-
什么是输入?什么是表达?为什么 getNextToken 不返回一些东西?