Как сделать калькулятор, следующий за MDAS? - PullRequest
0 голосов
/ 26 апреля 2020

У меня есть проект, в котором я должен сделать калькулятор, который следует правилу mdas. Я уже был в состоянии сделать это много, но что касается кодов Mdas, я понятия не имею, с чего начать.

import android.os.Build;
import android.os.Bundle;
import android.text.Editable;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;

import androidx.annotation.RequiresApi;
import androidx.appcompat.app.AppCompatActivity;

public class MainActivity extends AppCompatActivity {


    Button button0, button1, button2, button3, button4, button5, button6,
            button7, button8, button9, buttonAdd, buttonSub, buttonDivision,
            buttonMul, button10, buttonC, buttonEqual;
    EditText number;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        button0 = findViewById(R.id.button0);
        button1 = findViewById(R.id.button1);
        button2 = findViewById(R.id.button2);
        button3 = findViewById(R.id.button3);
        button4 = findViewById(R.id.button4);
        button5 = findViewById(R.id.button5);
        button6 = findViewById(R.id.button6);
        button7 = findViewById(R.id.button7);
        button8 = findViewById(R.id.button8);
        button9 = findViewById(R.id.button9);
        button10 = findViewById(R.id.button10);
        buttonAdd = findViewById(R.id.buttonadd);
        buttonSub = findViewById(R.id.buttonsub);
        buttonMul = findViewById(R.id.buttonmul);
        buttonDivision = findViewById(R.id.buttondiv);
        buttonC = findViewById(R.id.buttonC);
        buttonEqual = findViewById(R.id.buttoneql);
        number = findViewById(R.id.edt1);


        button1.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                number.setText(number.getText() + "1");
            }
        });

        button2.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                number.setText(number.getText() + "2");
            }
        });

        button3.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                number.setText(number.getText() + "3");
            }
        });

        button4.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                number.setText(number.getText() + "4");
            }
        });

        button5.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                number.setText(number.getText() + "5");
            }
        });

        button6.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                number.setText(number.getText() + "6");
            }
        });

        button7.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                number.setText(number.getText() + "7");
            }
        });

        button8.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                number.setText(number.getText() + "8");
            }
        });

        button9.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                number.setText(number.getText() + "9");
            }
        });

        button0.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                number.setText(number.getText() + "0");
            }
        });

        buttonAdd.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                number.setText(number.getText() + "+");
            }
        });

        buttonSub.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                number.setText(number.getText() + "-");
            }
        });

        buttonMul.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                number.setText(number.getText() + "*");
            }
        });

        buttonDivision.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                number.setText(number.getText() + "/");
            }
        });

        buttonEqual.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {

                number.getText();

                String st = (String.valueOf(number.getText()));
                st = st.replaceAll("\\s", "");
                String[] splitStrings = (st.split("((?<=[+-/*])|(?=[+-/*]))"));
                int result;
                int one = Integer.parseInt(splitStrings[0]);
                String operand = splitStrings[1];
                int two = Integer.parseInt(splitStrings[2]);
                String operandTwo = splitStrings[3];
                int three = Integer.parseInt(splitStrings[4]);
                String operandThree = splitStrings[5];
                int four = Integer.parseInt(splitStrings[6]);
                String operandFour = splitStrings[7];
                int five = Integer.parseInt(splitStrings[8]);
                String operandFive = splitStrings[9];
                int six = Integer.parseInt(splitStrings[10]);
                String operandSix = splitStrings[11];
                int seven = Integer.parseInt(splitStrings[12]);
                String operandSeven = splitStrings[13];
                int eight = Integer.parseInt(splitStrings[14]);
                String operandEight = splitStrings[15];
                int nine = Integer.parseInt(splitStrings[16]);
                String operandNine = splitStrings[17];
                int ten = Integer.parseInt(splitStrings[18]);
                String operandTen = splitStrings[19];
                int eleven = Integer.parseInt(splitStrings[20]);
                String operandEleven = splitStrings[21];
                int twelve = Integer.parseInt(splitStrings[22]);

                if (operand )






            }
        });

        buttonC.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                number.setText("");
            }
        });

        button10.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                number.setText(number.getText() + ".");
            }
        });
    }
}

В моем коде я разбил строку на разные части целых чисел, за которыми следует операнд. Но я понятия не имею, как сделать код для функции MDAS.

...