我目前正在制造一个计算器,用于计算Runge-Kutta方法来解决微分方程。 我希望用户在JTextField(DiffEqua)中输入其微分方程,然后将其从String转换为Integer输入,该输入可用于计算。即y + 5 * Math.sin(x)
问题是如何将String转换为一个变量,该变量将包含整数,x,y,sin,cos和tan。
我曾尝试将整个String转换为整数,但我认为必须以某种方式拆分或解析它。
double i = Integer.parseInt(DiffEqua.getText());
该变量将在这种情况下使用:
public void solve(double y, double h, int j, double i){
xArray = new double[j];
yArray = new double[j];
for(int dex = 0; dex < j; dex++){
F1 = h*f(x,y,i);
F2 = h*f(x+h/2,y+F1/2,i);
F3 = h*f(x+h/2,y+F2/2,i);
F4 = h*f(x+h,y+F3,i);
y = y + 1.0/6.0*(F1+2*F2+2*F3+F4);
xArray[dex] = x;
yArray[dex] = y;
x = x + h;
}
}
private double f(double x, double y, double i){
return i;
}
答案 0 :(得分:0)
我认为您可以尝试在每个逗号左右拆分JTextField的内容,例如:
String[] numbers = DiffEqua.getText().split(",");
double[] numbersAsDouble = new double[strings.length];
for(int i = 0; i < numbers.length; i++){
numbersAsDouble[i] = Double.parseDouble(numbers[i].trim());
}
这需要用户在文本字段中用逗号分隔数字。
答案 1 :(得分:-1)
您可以从String类中使用很多方法,只需在https://docs.oracle.com/javase/9/docs/api/java/lang/String.html阅读有关String类的Oracle文档,也许您会在这里找到快乐。