Хорошо. Поэтому я пытаюсь написать приложение, которое решает проблемы в правильном порядке операций (т. Е. PEMDAS, но без PE lol). Я, вероятно, делаю это неправильно, но что угодно. Что мне нужно, так это то, что в качестве итерации по каждому элементу в массиве, если это оператор, я удаляю два элемента (числа, окружающие оператор, потому что я заменяю оператор на правильное вычисление, поэтому массив с тремя элементами, 5 +5, станет массивом с одним элементом, 10), что было бы хорошо, но условие for-Statement не обновляется, поэтому, другими словами, когда я обновляю массив, array.length становится короче, но for-Statement не распознает это и продолжает проходить через границы массива, это вызывает ошибки outbbounds. Лучший способ объяснить это с помощью моего кода, так что вот оно:
for (i = 0; i < splitEquation.length; i++){
if (splitEquation[i].equals("*")){
splitEquation[i] = Double.toString(Double.parseDouble(splitEquation[i - 1]) * Double.parseDouble(splitEquation[i + 1]));
splitEquation = removeIndex(splitEquation, i - 1);
splitEquation = removeIndex(splitEquation, i + 1);
solution += Double.parseDouble(splitEquation[i - 1]);
}
}
И удалить индекс ():
private String[] removeIndex(String [] s, int index){
String [] n = new String[s.length - 1];
System.arraycopy(s, 0, n, 0, index - 1);
System.arraycopy(s, index, n, index - 1, s.length - index);
return n;
}
Заранее спасибо,
-Эрик
P.S. Дайте мне знать, если вам нужно уточнить, что делает мой код:)