android studio精细计算器
时间: 2023-11-20 13:56:37 浏览: 97
以下是使用Android Studio实现精细计算器的步骤:
1.首先,在Android Studio中创建一个新项目,并在布局文件中添加一个EditText用于显示计算结果,以及多个Button用于输入数字和运算符。
2.接下来,需要编写Java代码来实现计算器的逻辑。首先,需要编写一个方法来将输入的字符串表达式转换为可计算的数字和运算符。可以使用Java中的split()方法将字符串按照运算符分割成多个字符串,并使用Java中的Double.parseDouble()方法将数字字符串转换为double类型的数字。
3.然后,需要编写一个方法来计算表达式的值。可以使用Java中的栈来实现运算符的优先级,将数字和运算符依次入栈,并在遇到优先级更高的运算符时将栈中的数字和运算符出栈进行计算,最终得到表达式的值。
4.最后,在Button的点击事件中调用上述方法,将计算结果显示在EditText中即可。
以下是一个简单的示例代码:
```java
public class MainActivity extends AppCompatActivity {
private EditText resultEditText;
private String expression = "";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
resultEditText = findViewById(R.id.result_edit_text);
Button zeroButton = findViewById(R.id.zero_button);
zeroButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
expression += "0";
resultEditText.setText(expression);
}
});
// 添加其他数字和运算符的Button的点击事件
Button equalButton = findViewById(R.id.equal_button); equalButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
double result = calculate(expression); resultEditText.setText(String.valueOf(result));
}
});
}
private double calculate(String expression) {
// 将表达式按照运算符分割成多个字符串
String[] tokens = expression.split("(?<=\\d)(?=\\D)|(?<=\\D)(?=\\d)");
// 使用栈来计算表达式的值
Stack<Double> stack = new Stack<>();
for (String token : tokens) {
if (token.matches("\\d+\\.?\\d*")) {
// 如果是数字,则将其转换为double类型并入栈
stack.push(Double.parseDouble(token));
} else {
// 如果是运算符,则从栈中取出两个数字进行计算,并将结果入栈
double num2 = stack.pop();
double num1 = stack.pop();
switch (token) {
case "+":
stack.push(num1 + num2);
break;
case "-":
stack.push(num1 - num2);
break;
case "*":
stack.push(num1 * num2);
break;
case "/":
stack.push(num1 / num2);
break;
}
}
}
// 栈中最后剩下的数字即为表达式的值
return stack.pop();
}
}
```
阅读全文