Я делаю приложение калькулятора, и у меня есть одна проблема. Я не могу отличить отрицательные числа и вычитание. Я использую этот код для разделения всех чисел.Калькулятор вопрос
ArrayList<Double> doubles;
String[] strings1 = string.split("\\*");
for (String string2 : strings1) {
String[] string3 = string2.split("÷");
for (String string4 : string3) {
String[] string5 = string4.split("\\+");
for (String string6 : string5) {
Log.e("Point_1", "String5 " + string5.toString());
Log.e("Point_1", "String6 " + string6);
String[] string7 = string6.split("\\-");
for (String string8 : string7) {
doubles.add(Double.parseDouble(string8));
}
}
}
}
Что я получаю [number1,number2,number3 ...]
(все они положительны), а в другом ArrayList
операторов как [+,-,+,*,- ...]
. Мне нужно поставить первые ArrayList(doubles)
все числа, но сделать их отрицательными, если они есть. Позвольте привести пример. Если у нас есть строка типа «-3+6
», то в двухместных номерах должны быть номера: -3;6
, а во втором ArrayList
только «+
». И наоборот, если у нас есть «6-3
», то в двухместных номерах мы должны иметь: 6;3
и во втором ArrayList
только «-
». Как я могу это сделать?
спасибо.
Посмотрите алгоритм шунтирования. Не удаляйте своих операторов. –
Я бы сделал POJO, который позволяет мне хранить оператор и значение частным образом –
Помимо этого: в вашем операторе журнала вместо 'string5.toString()' вы хотите 'Arrays.toString (string5)'. –