Я пытаюсь преобразовать выражение, данное как String в Integer. Напр. если задано «1 + 5 * 5», метод должен вернуть «26». Я начал писать код только для решения умножения, однако, когда я запускаю его там не выходСтрока для целых выражений
public static void operationS(ArrayList<String> m)
{
for (int i=0; i<m.size(); i++)
{
while ((m.get(i)).contains("*"))
{
int x = ((m.get(i)).indexOf("*"));
char A=((m.get(i)).charAt(x-1));
char B= ((m.get(i)).charAt(x+1));
int r= Character.getNumericValue(A)*Character.getNumericValue(B);
String numberAsString = Integer.toString(r);
if(x==1 && (m.get(i)).length()==3)
{
m.set(i, numberAsString);
}
if(x==1 && (m.get(i)).length()>3)
{
String n = numberAsString+((m.get(i)).substring(x+2));
m.set(i, n);
}
else
{
String k= ((m.get(i)).substring(0,x-1))+numberAsString+((m.get(i)).substring(x+2));
}
}
}
for (int u=0;u<m.size();u++)
{
System.out.println (m.get(u));
}
}
Поскольку я не могу импортировать какую-либо библиотеки, мой план действий был заменив строку каждый раз, когда операция была завершена ,
Я планирую использовать один и тот же цикл для сложения, вычитания и деления
Я уверен, что Вы отправили точную копию ранее сегодня ... пожалуйста, не перепечатывать точно такие же вопросы, это не рекомендуется и очень нахмурился. – Li357
Как вы его используете? – immibis
Проведите некоторое исследование по анализу выражений. В основном вам нужно пройти строку слева направо, ища _lexemes_, которые являются числами и операторами в выражении, и работать с ними по мере их появления. Поиск операторов и поиск номеров рядом с ними, скорее всего, приведет к горю, когда вы закончите работу в неправильном порядке. – ajb