java正则表达式,匹配的数学运算符
我正在尝试编写一个正则表达式来将数学运算符与字符匹配。我尝试了很多不同的方法,但我一直得到: 标记上出现语法错误,应为表达式 我的代码如下所示:java正则表达式,匹配的数学运算符,java,regex,Java,Regex,我正在尝试编写一个正则表达式来将数学运算符与字符匹配。我尝试了很多不同的方法,但我一直得到: 标记上出现语法错误,应为表达式 我的代码如下所示: public static void readMath(char c) { if(c == [+\-*/]) { // do some stuff } } private static List<Character> ops = new ArrayList<Charac
public static void readMath(char c) {
if(c == [+\-*/]) {
// do some stuff
}
}
private static List<Character> ops = new ArrayList<Character>();
static {
ops.add('+');
ops.add('-');
ops.add('*');
ops.add('/');
}
我尝试过逃避不同的东西等。我似乎无法让它工作。您不需要正则表达式来匹配单个
字符。无论如何,这不是Java中使用正则表达式的方式
if(c == '+' || c == '-' || c == '/' || c == '*') {
// do some stuff
}
或者您可以尝试使用switch语句
switch (c)
{
case '+':
case '-':
case '*':
case '/':
// do some stuff
break;
}
您实际上不需要正则表达式,可以使用Enum或switch。以下是一个枚举示例:
public enum Operation {
PLUS('+'),
MINUS('-'),
TIMES('*'),
DIVIDE('/')
private final char symbol;
Operation(char symbol) { this.symbol = symbol; }
public char toChar() { return symbol; }
}
public void checkOp(){
if(Operation.PLUS.toChar()=='+') {
}
}
您可以执行以下操作
初始化类中允许的运算符列表,如下所示:
public static void readMath(char c) {
if(c == [+\-*/]) {
// do some stuff
}
}
private static List<Character> ops = new ArrayList<Character>();
static {
ops.add('+');
ops.add('-');
ops.add('*');
ops.add('/');
}
但是不要忘记default
子句。通常情况下,default
子句是捕获意外情况的良好编程实践。但是在这里,default
子句不是必需的。if
语句中没有else
,因此,如果未选择任何案例,则没有要采取的操作。