制作android计算器的一个简单方法是有3个单独的编辑文本框,让用户输入一个数字,一个函数,然后输入另一个数字,如3 + 3。这将使应用程序开发人员更容易存储数字和函数,并执行计算。
现在…我的计算器应用程序有能力输出所有的实时输入,缺点是,当我检索什么是在输入框中,我检索它作为字符串(以确保我包括所有的函数输入)。我知道如何检索数字(通过使用int解析),但我如何检索函数,如+ -/* ?(它们是主要的部分!!: O)。如果有任何帮助,我将非常感激,谢谢:)
尝试使用能够分析和识别正确操作的开关。像这样:(我认为功能EditText的内容在一个名为functionSign
字符串...
switch(functionSign)
{
case "+": return op1+op2;
case "-": return op1-op2;
...
编辑2:我认为用户可以只把函数符号+ -/*和操作组织在一个方法:
public double calculate()
{
String operations= inputEditText.getText().toString();
StringTokenizer st= new StringTokenizer(operations);
//to calculate in input must have at last one operation and two operands
//the first token must be a number (the operation scheme is (number)(function)(numeber)...)
double result=Double.parseDouble(st.nextToken());
while(st.hasMoreTokens())
{
String s=st.nextToken();
if(s.equals("+"))
result += Double.parseDouble(st.nextToken());
else if(s.equals("-"))
result -= Double.parseDouble(st.nextToken());
else if(s.equals("*"))
result *= Double.parseDouble(st.nextToken());
else if(s.equals("/"))
result /= Double.parseDouble(st.nextToken());
else
throw new Exception();
}
return result;
}
这段代码是一个非常简单的例子,你必须确保用户不会试图计算一些不完整的东西,如:
- 3 + 3 -
- /3 * 5
和相似。用户应该能够做的是你的决定
您可以将操作符作为字符串,并使用if语句来确定要做什么:
String operator=operatorEditText.getText().toString();
if (operator.equals("+")){
//addition code here
}
else if (operator.equals("-")){
//subtraction code here
}
...