Java.util.regex.PatternSyntaxException: висячий метасимвол '+' рядом с индексом 0 +JAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Java.util.regex.PatternSyntaxException: висячий метасимвол '+' рядом с индексом 0 +

Сообщение Anonymous »

При запуске пользовательского интерфейса я получаю сообщение об ошибке, из-за которого этот код выдает мне ошибку в заголовке. Это работает для всех других моих символов-операторов, поэтому я действительно не понимаю, что здесь происходит. Я не хотел публиковать весь код, чтобы вы могли найти остальное, если этого недостаточно, на моем gitHub: https://github.com/jparr721/Calculator- ... calculator

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;
}


Подробнее здесь: https://stackoverflow.com/questions/402 ... ar-index-0
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»