该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
import org.junit.Test;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class TestCalc {
@Test
public void testCalculator() {
String input = "1+1";//输入
String rule = "(\\d+\\.?\\d*)([+\\-*/])(\\d+\\.?\\d*)";
Matcher matcher = Pattern.compile(rule).matcher(input);
double result;
if (!matcher.find()) throw new NullPointerException();
double num1 = Double.parseDouble(matcher.group(1));
double num2 = Double.parseDouble(matcher.group(3));
switch (matcher.group(2)) {
case "+":
result = num1 + num2;
break;
case "-":
result = num1 - num2;
break;
case "*":
result = num1 * num2;
break;
case "/":
result = num1 / num2;
break;
default:
result = Double.NaN;
}
System.out.printf("%.2f", result);
}
}