Java консольный ввод - PullRequest
2 голосов
/ 25 мая 2010

Тип данных для любого ввода через консоль (как я использую класс BufferedReader) - String. После этого мы приводим его тип к требуемому типу данных (как Inter.parseInt () для целого числа). Но в C мы можем взять ввод любого примитивного типа данных, тогда как в java все типы ввода являются String.why, почему это так ????

Ответы [ 2 ]

5 голосов
/ 25 мая 2010

Консольный ввод фактически читается как последовательность байтов, а не как строка. Это потому, что System.in представлен API как InputStream. Типичная упаковка до JDK1.5 (ура для класса Scanner!) Была примерно такой:

BufferedReader in = new BufferedReader(new InputStreamReader(System.in));

т.е. InputStreamReader преобразует поток байтов в поток символов, а затем BufferedReader используется для выполнения ваших операций readLine() или чего-либо еще.

Так что это вывод String, потому что вы получаете буферизованный вывод потока символов из вашего BufferedReader.

3 голосов
/ 25 мая 2010

В Java вы можете сделать:

Scanner scan = new Scanner(System.in);
scan.nextInt();
scan.nextDouble();

и т.д.. Вам просто нужно убедиться, что следующий ввод правильный.

EDIT: пропущена часть буферизированного ридера. Я думаю, что этот ответ совершенно не имеет значения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...