私のUIを起動するとエラーが発生します。このコードにより、このコードではタイトルにエラーが表示されます。私の他のオペレータシンボルのすべてに対して機能するので、ここで何が起こっているのか分かりません。これが私のGitHub上で十分でない場合は、残りの部分を見つけることができますので、私はすべてのコードを投稿したくありませんでした:https://github.com/jparr721/Calculator-App/tree/master/src/calculatorjava.util.regex.PatternSyntaxException:インデックス0の近くのメタ文字「+」のぶら下がり
public class Calculation_Controls {
public double A, B;
private String[] operators = new String[] {"-","+","/","*","x","^","X"};
/**
* Check for the symbol being used within the TextArea to then
* apply the correct caculation method.
* FIXME - Allow for multiple symbols to be used and have them return
* FIXME - a result in accordance with PEMDAS
*
*@param nums
*
* @return operator, or error
*/
public String findSymbol(String nums) {
for (String operator : operators) {
if (nums.contains(operator)) {
return operator;
}
}
return "invalid input";
}
/**
* Input method to take the user input from the text area
* and apply the correct calculation to it
*
* @param nums - Stores the input as a String which I then convert to an int
* then back to a string to be printed to the TextArea
*
* @return - The result of the calculation as a string
*/
public String input(String nums){
String operator = findSymbol(nums);
if (operator == null){
System.out.println("Invalid input");
}
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("Invalid Operator");
}
return result;
}
可能性をREFERE変更します[String.split()のメタ文字の複製+](http://stackoverflow.com/questions/16217627/string-split-at-a-meta-character) – njzk2