Я пытаюсь получить ввод от пользователя и распечатать его на консоли, используя Java 8 (IDE BlueJ, Windows 10).При печати вывода есть ошибка: программа печатает Уравнение 2 дважды вместо печати Уравнения 1 и Уравнения 2.
Это код:
import java.util.Scanner;
public class Equations
{
public static void main (String[] args)
{
Scanner scan = new Scanner (System.in);
System.out.println("This program solves a system of 2 linear equations");
System.out.println("Enter the coefficients a11 a12 a21 a22 b1 b2");
int a11 = scan.nextInt();
int a12 = scan.nextInt();
int a21 = scan.nextInt();
int a22 = scan.nextInt();
int b1 = scan.nextInt();
int b2 = scan.nextInt();
System.out.println("Eq1: "+ a11 +"*x1+"+ a12 +"*x2="+ b1);
System.out.println("Eq2: "+ a21 +"*x1+"+ a22 +"*x2="+ b2);
}
}
это ожидаемый результат:
Эта программа решает систему из 2 линейных уравнений. Введите коэффициенты a11 a12 a21 a22 b1 b2
1 2 3 4 5 6
Eq1: 1 * x1+ 2 * x2 = 5
Eq2: 3 * x1 + 4 * x2 = 6
И это вывод:
Эта программа решает систему2 линейных уравнения Введите коэффициенты a11 a12 a21 a22 b1 b2
1 2 3 4 5 6
Eq2: 3 * x1 + 4 * x2 = 6
Eq2: 3 * x1 +4 * x2 = 6
Обратите внимание, что ошибка существует только при вводе ввода в одну строку с пробелами между цифрами, и не существует при нажатии клавиши Enter после каждого числа.
Это означает, что если на вход поступает одно число за раз, ожидаемый результат получается правильно:
Эта программа решает систему из 2 линейных уравнений. Enterкоэффициенты a11 a12 a21 a22 b1 b2
1
2
3
4
5
6
Eq1: 1 * x1 + 2 *x2 = 5
Eq2: 3 * x1 + 4 * x2 = 6
Поскольку в это трудно поверить и трудно воспроизвести, вот скриншот: ![enter image description here](https://i.stack.imgur.com/CFl34.png)
Чем обусловлена разница, когда вход поступает в одну строку, разделенную пробелами, по сравнению с тем, когда он входит в отдельные строки, разделенные вводом?
Как получить желаемый вывод при входеформат одной строки?