Java 计算器输入为字符串

Java 计算器输入为字符串,java,Java,我想知道如何迭代字符串,这是一个类似“34+35=”的计算 循环遍历每个字符,如果该字符是数字,下一个字符也是数字等,则将其添加到字符串中 import java.io.*; public class SimpleTest{ static double operand1; static char operator; static boolean isnum; static double result; static String calc = "45+45="

我想知道如何迭代字符串,这是一个类似“34+35=”的计算 循环遍历每个字符,如果该字符是数字,下一个字符也是数字等,则将其添加到字符串中

import java.io.*;

public class SimpleTest{

   static double operand1;
   static char operator;
   static  boolean isnum;
   static double result;
   static String calc = "45+45=";
   static String in = "";
   public static void main(String[] argv){

     SimpleCalculator calculator = new SimpleCalculator();


        while (calculator.c != '=')
        {
           in =  calculator.input(calc,operand1);
            calculator.parsevalue(operand1, in);
        }


         System.out.println(calculator.getResult());
        }

}

public String input(String calc, double operand1)
{
String in = "";
//66
//++2
        for (int i = 0; i < calc.length(); i++)
        {
        c = calc.charAt(i);
         String  characterString = Character.toString(c);
        if (Character.isDigit(calc.charAt(i)))
        {
         while (Character.isDigit(calc.charAt(i+1)))
         {
                characterString = characterString + Character.toString(calc.charAt(i+1));
                i++;
         }

        in = characterString;
        }
        parsevalue(operand1,in);

        }
return in;
}

  public void parsevalue(double operand1, String in)
  {

String characterString = in;
            try
            {

                setOperand(Double.parseDouble(characterString));

                   if (flag == 0)

                    {

                        operand1 = (Double.parseDouble(characterString));
                        result = operand1;
                        flag = 1;
                    }

                    getResult();

              }

            catch (Exception e)
            {
                try
                {
                    operator = c;
                }
                catch (Exception e2)
                {
                    System.out.println("Enter a number");
                }
            }
        }

   public void setOperator(char operator){
     this.operator = operator;
   }

   public char getOperator(){
     return operator;
   }

   public void setOperand(double operand){

      this.operand = operand;
   }

   public double getOperand(){

      return operand;
   }

    public double getResult(){

      if (getOperator() == '+')
          {
             result = (result + getOperand());
          }
             if (getOperator() == '-')
          {
             result = (result - getOperand());
          }
          if (getOperator() == '*')
          {
             result = (result * getOperand());
          }
          if (getOperator() == '/')
          {
             if (getOperand() == 0)
             {
                System.out.println("Cannot divide by zero");
             }
             result = (result / getOperand());
          }

          return result;
    }
import java.io.*;
公共类SimpleTest{
静态双操作数1;
静态字符算子;
静态布尔数;
静态双重结果;
静态字符串calc=“45+45=”;
静态字符串in=“”;
公共静态void main(字符串[]argv){
SimpleCalculator calculator=新的SimpleCalculator();
而(calculator.c!='=')
{
in=计算器输入(计算器,操作数1);
计算器.parsevalue(操作数1,in);
}
System.out.println(calculator.getResult());
}
}
公共字符串输入(字符串计算,双操作数1)
{
在“”中输入字符串;
//66
//++2
对于(int i=0;i
我建议您熟悉使用Oracle提供的优秀Javadoc:


特别是,您可能会发现
charAt()
方法非常有用。

我建议您熟悉使用Oracle提供的优秀Javadoc:


特别是,您可能会发现
charAt()
方法很有用。

如果它总是采用XXX+YYY=格式,那么您应该使用class
String
中的方法
replace
去掉“=”,
split
得到两个数字并将它们解析成整数,然后计算值。

如果它总是采用XXX+YYY=格式,那么您应该使用class
String
中的方法
replace
要去掉“=”,
split
要得到两个数字并将它们解析为整数,然后计算值。

除了和类中可以帮助您的函数之外,我建议您阅读或以及如何使用它们进行此计算。这可能不是你的家庭作业所必需的,但了解它们以及它们与你正在做的事情之间的关系仍然是一个好主意

除了和类中可以帮助您的函数之外,我建议您阅读或以及如何使用它们进行此计算。这可能不是你的家庭作业所必需的,但了解它们以及它们与你正在做的事情之间的关系仍然是一个好主意

说真的,你想让我们帮你做作业?你不会通过这种方式学到任何东西是的,就像库西马尔所说的,除非你尝试一些东西,否则你不会学到任何东西。让我们看看你到目前为止做了什么。斯普基乔恩:他(或她)总是问几乎相同的问题,这并没有真正的帮助。你真的想让我们帮你做作业吗?你不会通过这种方式学到任何东西是的,就像库西马尔所说的,除非你尝试一些东西,否则你不会学到任何东西。让我们看看你到目前为止做了什么。也许我们可以从那里帮助你。@spookyjon:他(或她)总是问几乎相同的问题,这并没有真正的帮助。