如何在java代码中使用parenetheses

时间:2016-11-06 17:01:17

标签: java netbeans

我正在自学Java而不是通常的“你好世界!”我认为在构建计算机应用程序并学习Java时会更好。

"JavaCalculator.png"

我的问题是:我如何编写“(”和“)”括号键,以便我可以在我的计算器应用程序中使用它们。

我的应用中的典型数字按钮(2)是:

 Firebase ref = new Firebase("https://<yourapp>.firebaseio.com");
     ListAdapter adapter = new FirebaseListAdapter<ChatMessage>(this, ChatMessage.class, android.R.layout.two_line_list_item, mRef)
     {
         protected void populateView(View view, ChatMessage chatMessage)
         {
             ((TextView)view.findViewById(android.R.id.text1)).setText(chatMessage.getName());
             ((TextView)view.findViewById(android.R.id.text2)).setText(chatMessage.getMessage());
         }
     };
     listView.setListAdapter(adapter);

我的应用中的典型操作数按钮( - )是:

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("");
    }

2 个答案:

答案 0 :(得分:1)

您可以使用StringBuilder创建表达式(如2+(1-5)),然后使用:

import javax.script.ScriptEngineManager;
import javax.script.ScriptEngine;
...

ScriptEngineManager mgr = new ScriptEngineManager();
ScriptEngine engine = mgr.getEngineByName("JavaScript");
String exp = sb.toString(); //sb is the string builder
int result = 0;
try {
    result = (int) engine.eval(exp);
} catch (ScriptException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
}
//from here you can use result in whatever way you want

答案 1 :(得分:1)

作为初学者,我建议只使用内置的Javascript engine

ScriptEngineManager mgr = new ScriptEngineManager();
ScriptEngine engine = mgr.getEngineByName("JavaScript");
String foo = "4+5+(8*4)"; //replace your expression here
System.out.println(engine.eval(foo));

您可以使用另一个MVEL