做了一个计算器,但没有办法检索函数



制作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
    }
    ...

相关内容

  • 没有找到相关文章

最新更新