我在教自己的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;
}
你的代码wi在目前的形式下永远不能正常工作。把它全部扔掉,并查找递归下降表达式解析,或Dijkstra调车码算法。 – EJP
对不起,但它的剂量。 – Simnix