Подскажите, пожалуйста.
В лекции написано:
import java.util.Scanner;
public class Solution {
public static void main(String[] args)
{
String str = "10 20 40 60";
Scanner scanner = new Scanner(str);
int a = scanner.nextInt(); // a == 10;
int b = scanner.nextInt(); // b == 20;
System.out.println(a + b); // 30
}
}
Но где разъясняется, ПОЧЕМУ сканер считывает в int a - только 10, в int b и - только 20?
И почему при присваивании одного и того же значения, в результате получаются разные числа?
В комментариях написали:
В этом примере Scanner считывает строку - String str = "10 20 40 60" ;
int a = scanner.nextInt(); - сканнер читает 10 и преобразует в int,результат сохраняет в переменную,здесь используется пробел в качестве разделителя между этими числами
int a = scanner.nextInt(); - читает 20 и преобразует в int
int b = scanner.nextInt(); - читает 40 и преобразует в int
int c = scanner.nextInt(); - читает 60 и преобразует в int
int d = scanner.nextInt(); - здесь будет ошибка,тк дальше уже нечего считывать
Но все равно не понятно, почему int a, b,с и тд. считывают только значения до пробелов, а каждое новое "считывание" в случае с int b и с, начинается соответственно с 40 и 60.
Anonymous #3481859
6 уровень
Scanner
Решен
token: 20 10 20 40 60 ^И так далее.