私はJavaを教えています。通常の "hello World!"私は電卓アプリを作ってJavaを学ぶのが良いと思った。Javaコードでparenethesesを使用する方法
、私の質問は:私は私の電卓アプリでそれらを使用することができますので、どのように私は「(」と「)」カッコキーをプログラムすることができます。
典型的な数のボタンは、(2)私のアプリである: -
private void btnTwoActionPerformed(java.awt.event.ActionEvent evt) {
if (bFinish == false) {
String btnTwoText = txtDisplay.getText() + btnTwo.getText();
dObtainer = Double.parseDouble(btnTwoText);
txtDisplay.setText(btnTwoText);
} else {
txtDisplay.setText("");
String btnTwoText = txtDisplay.getText() + btnTwo.getText();
dObtainer = Double.parseDouble(btnTwoText);
txtDisplay.setText(btnTwoText);
bFinish = false;
}
}
典型的なオペランドのボタンは、()私のアプリでは、次のとおりです。
private void btnMinusActionPerformed(java.awt.event.ActionEvent evt) {
String button_text = "-";
getOperator(button_text);
}
private void getOperator(String btnText) {
mathOperator = btnText.charAt(0);
dTotal1 = dTotal1 + dObtainer;
txtDisplay.setText("");
}
そして、これは何が起こるかです」 「等しい」ボタンを押す。
private void btnEqualsActionPerformed(java.awt.event.ActionEvent evt) {
String sBuffer = "";
switch (mathOperator) {
case '+':
dResult = dTotal1 + dObtainer;
break;
case '-':
dResult = dTotal1 - dObtainer;
break;
case '/':
dResult = dTotal1/dObtainer;
break;
case '*':
dResult = dTotal1 * dObtainer;
break;
case '^':
dResult = Math.pow(dTotal1, dObtainer);
break;
case '(':
sBuffer = "(";
//dResult = dObtainer;
break;
}
mathOperator = '\0';
dTotal1 = 0;
dObtainer = 0;
DecimalFormat df = new DecimalFormat("#.########");
if(!"(".equals(sBuffer))
sBuffer = df.format(dResult);
if(!")".equals(sBuffer))
sBuffer = df.format(dResult);
sBuffer = sBuffer.replace(".0", "");
txtDisplay.setText(sBuffer);
bFinish = true;
}
お客様のコードを現在の形では決して正しく動作しません。それをすべて投げ捨て、再帰的な降下表現の構文解析、またはDijkstra Shunting-yardアルゴリズムを調べます。 – EJP
すみません。 – Simnix