Вложен для запроса, пытающегося следовать уравнениям решения PEMDAS (слева направо). Калькулятор проекта - PullRequest
0 голосов
/ 23 марта 2020

я делаю калькулятор, где пользователь вводит уравнение. Я разделил уравнение на + или -. Затем я пытаюсь решить уравнения с / или *. Проблема, когда у нас есть последовательные операторы умножения / деления в элементе Array String. Я не уверен, как обработать String. Лучше ли это решить с помощью вложенных операторов if и for? Пожалуйста, помогите.

    public static String[] multDiv (String[] subEquat1){
        for(Integer y = 0; y < subEquat1.length ; y++) {//iterates through elements in subEquat1
            for(Integer i = 0; i < subEquat1[y].length(); i++){//iterates through chars in element string
                if(subEquat1[y].charAt(i) == '*'){
                    String[] part1 = subEquat1[y].split("\\*");
                    /*Look the substring to see if there are more division*/
                    for(int v = 0; v < part1.length; v++){
                        for(int n = 0; n < part1[n].length(); n++) {
                            if(part1[v].charAt(n)==('/')) {
                                String[] part2 = part1[v].split("/");
                                part1[v] = String.valueOf(Double.parseDouble( part2[0])/Double.parseDouble(part2[1]));
                            }
                            else {

                            }
                        }
                        }
                    subEquat1[y]= String.valueOf(Double.parseDouble(part1[0])*Double.parseDouble(part1[1]));
                }
                else if(subEquat1[y].charAt(i) == '/') {
                    String[] part1 = subEquat1[y].split("/");
                    /*Look for the substring to see if there is more multiplication*/
                    for(int v = 0; v < part1.length; v++) {
                        for(int n = 0; n < part1[v].length(); n++) {
                            if(part1[v].charAt(n) ==('*')) {
                                String[] part2 = part1[v].split("\\*");
                                part1[v] = String.valueOf(Double.parseDouble(part2[0])/Double.parseDouble(part2[1]));
                            }   
                        }
                    }
                    subEquat1[y] =String.valueOf(Double.parseDouble(part1[0])/Double.parseDouble(part1[1]));
                }

            }///////////GET THE SUM OF THE NUMBERS
        }
...