У меня есть головоломка, мне нужно разделить возможную разнообразную строку математики на отдельные объекты для хранения в ArrayList.Регулярные выражения Java с математическими операторами
Ввод считывается со сканера, может быть любым из следующих.
Scanner input = new Scanner(System.in);
String read = input.nextLine();
ArrayList al = new ArrayList();
-5 + 10 //possible value of read
9--5 //possible value of read
-20* 10 //possible value of read
В принципе мне нужно, чтобы захватить первое число и потенциальный отрицательный знак, все игнорируя начальные или конечные пробелы и сохранить его, а затем принять следующий символ, игнорируя пробелы и сохранить его (оператор задачи), и затем следующее число с необязательным отрицательным знаком, снова игнорируя пробелы.
Я не очень хорошо знаком с регулярным выражением, и здесь есть много сложных возможностей, которые я не знаю, как справиться.
Если бы мне пришлось положить его логически, я бы сказал это таким образом:
Получить первый непробельный характер и конец в последний номер цифры, которые непосредственно следует за ним.
Получить на следующий непробельный символ
Получить следующий непробельный характер и конец в последний номер цифры, которые непосредственно следует за ним.
Любые указатели на синтаксис для этого?
EDIT: Я не просто пытаюсь убедить результат выражения, о котором идет речь, мне нужно разбить его и сохранить в ArrayList, чтобы впоследствии манипулировать как часть класса фракций.
Вы не должны использовать регулярное выражение для этого, потому что он не будет масштабироваться с вложенными арифметическими выражениями. Скорее, вам нужен парсер. –
Вам нужно использовать регулярное выражение? Если нет, проверьте этот [ответ] (http://stackoverflow.com/a/36341949/4256677) – varontron