Как лучше сделать ввод данных?
Всем привет, я окончательно запутался в вводе данных, в видеоуроках говорили писать a= cin.nextInt(); Позже на мой предыдущий вопрос ответили. Ниже я цитирую человека:
Считывайте строку целиком (nextLine()) и преобразуйте в к нужному типу (Integer.parseInt):
Вопрос: почему лучше делать именно так? Спасибо! Код:
import java.util.Scanner;
public class main {
public static void main(String[] args) {
Scanner cin = new Scanner(System.in);
// вариант 1
String a;
a = cin.nextLine();
int b = Integer.parseInt(a);
System.out.println(b);
// вариант 2
Int a;
a = cin.nextInt();
System.out.println(a);
}
}
Ответы (1 шт):
Стоит использовать nextLine потому, что одним и тем же сканером, обычно, считывают разные данные. Предположим вы заносите в программу int id и String name. Id вы считываете с помощью nextInt(), а name с помощью nextLine().int id = scanner.nextIn(); String name = scanner.nextLine(); и этот код работать не будет. Потому, что nextInt оставляет после себя символ новой строки, который считает nextLine(). Чтобы этого не произошло между чтением id и name нужно вызвать еще еще один раз scanner.nextLine() - он считает символ новой строки и дальше уже можно вводить name. Чтобы не путаться во всем этом - проще все считывать nextLine(), а потом приводить к нужным типам.