Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/393.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
java正则表达式,匹配的数学运算符_Java_Regex - Fatal编程技术网

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
,因此,如果未选择任何案例,则没有要采取的操作。