一行上具有多个变量和两位数字的多个输入(导数计算器)

时间:2018-10-15 22:40:57

标签: java

package DerivativeFormulas;

import Variables.Variables;

import java.io.IOException;

public class PowerRule {

public static void main(String[] args) throws IOException {

    //User inputs derivative equation
    System.out.print("Enter the derivative - ");
    Variables.userInputs = Variables.input.readLine().split("");


    //Coefficient is put into the string array "userInputs"
    Variables.coefficient = Integer.parseInt(Variables.userInputs[0]);

    //User inputs the variable assigned to function
    String x;
    x = Variables.userInputs[1];

    //User inputs power symbol "^"
    String power;
    power = Variables.userInputs[2];


    Variables.polydeg = Integer.parseInt(Variables.userInputs[3]);

    System.out.println((Variables.coefficient * Variables.polydeg) + x + power + (Variables.polydeg - 1));
  }
}

我试图制作一个程序,该程序将使用幂规则来提取函数的派生类。用户输入前导系数,然后输入变量,然后输入幂符号“ ^”,然后输入变量的指数,中间没有空格。输入全部在一行上。 4x^2 outputs 8x^1仅当用户输入的前导系数和指数小于10时,程序才成功。每当我尝试为系数或指数输入两位数时,都会出现错误。通过将.split("")更改为.split(" ")可以在输入之间插入空格时使程序正常工作,但是我不想在输入之间插入任何空格。例如10x^10将不起作用。我该如何解决?

这里也是变量。

package Variables;

import java.io.*;

public class Variables {

    //Main user input
    public static BufferedReader input = new BufferedReader(new InputStreamReader(System.in));


    //User inputs get put into a string array
    public static String userInputs[] = new String[4];

    //Numbers
    public static int coefficient;
    public static int polydeg;

    //Symbols
    public static char e = 'e';

}

1 个答案:

答案 0 :(得分:0)

由于表达式ax^b ab可能是多个数字,因此split()可能不是最佳选择。您可以使用indexOfsubstring函数来提取数字:

String temp = Example.input.readLine();
Example.userInputs[0] =  temp.substring(0, temp.indexOf("x"));
Example.userInputs[1] = "x";  
Example.userInputs[2] = "^";
Example.userInputs[3] = temp.substring(temp.indexOf("^") +1, temp.length());