java.util.regex.PatternSyntaxException: Dangling meta character '+' near index 0 +
java.util.regex.PatternSyntaxException: Dangling meta character '+' near index 0 +
当我启动UI时,会出现错误,导致该代码在标题中向我抛出错误。对于我的其他运算符号,它是有效的,所以我真的不知道发生了什么。我不想发布所有的代码,所以如果这不够的话,你可以在我的gitHub上找到剩下的部分:https://github.com/jparr721/Calculator-App/tree/master/src/calculator
public class Calculation_Controls { public double A, B; private String[] operators = new String[] {"-","+","/","*","x","^","X"}; /** * 检查文本区域中使用的符号,然后应用正确的计算方法。 * 修复:允许使用多个符号,并根据PEMDAS返回结果。 * * @param nums * * @return 运算符,或错误 */ public String findSymbol(String nums) { for (String operator : operators) { if (nums.contains(operator)) { return operator; } } return "输入无效"; } /** * 输入方法,将用户输入从文本区域中获取,并应用正确的计算方法 * * @param nums - 将输入存储为字符串,然后将其转换为整数,再转换回字符串以在文本区域中打印 * * @return - 计算结果作为字符串 */ public String input(String nums){ String operator = findSymbol(nums); if (operator == null){ System.out.println("输入无效"); } String[] split = nums.split(operator); int left = Integer.parseInt(split[0]); int right = Integer.parseInt((split[1])); String result = ""; switch (operator){ case "+": result = Double.toString(add(left, right)); break; case "-": result = Double.toString(subtract(left, right)); break; case "*": case "x": case "X": result = Double.toString(multiply(left, right)); break; case "/": result = Double.toString(divide(left, right)); break; case "^": result = Double.toString(pwr(left, right)); break; default: System.out.println("无效的运算符"); } return result; } }