Есть ли способ разбить JTextField на целое число - PullRequest
0 голосов
/ 26 апреля 2019

В настоящее время я делаю калькулятор, который выполняет вычисления для метода Рунге-Кутты для решения дифференциального уравнения.Я хочу, чтобы пользователь ввел свое дифференциальное уравнение в JTextField (DiffEqua), а затем преобразовал его из строкового в целочисленное значение, которое можно использовать для расчетов.т.е. y + 5 * Math.sin (x)

Проблема в том, как преобразовать эту строку в переменную, которая будет содержать целые числа x, y, sin, cos и tan.

Я пытался преобразовать всю строку в целое число, но я считаю, что ее нужно как-то разбить или проанализировать.

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; 
} 

Ответы [ 2 ]

0 голосов
/ 26 апреля 2019

Существует множество методов, которые вы можете использовать из класса String, просто прочитайте документы Oracle о классе String по адресу https://docs.oracle.com/javase/9/docs/api/java/lang/String.html, и, возможно, вы найдете там свое счастье.

0 голосов
/ 26 апреля 2019

Я думаю, вы можете попытаться разделить содержимое 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());
}

Для этого пользователю необходимо разделить числа запятыми в TextField.

...