Список строк (несколько строк) в качестве ввода командной строки в Java - PullRequest
6 голосов
/ 05 мая 2011

Я пытаюсь выполнить задание для школы и не знаю, как поступитьНиже приведена ссылка на контекст задания:

https://docs.google.com/viewer?a=v&pid=explorer&chrome=true&srcid=0B1DkmkmuB-leNDVmMDU0MDgtYmQzNC00OTdkLTgxMDEtZTkxZWQyYjM4OTI1&hl=en

У меня есть общее представление о том, как делать все, что требует назначение, но я не уверен, как поступитьс входом.

Пример ввода:

a0
0
a00
ab000

, который дает выход:

Дерево 1:
Недействительно!
Дерево 2:
Высота: -1
Длина пути: 0
Завершено: да
Заказ:
Дерево 3:
Высота: 0
Длина пути: 0
Завершено: да
Порядок: a
Дерево 4:
Высота: 1
Длина пути: 1
завершено: да
почтовый перевод: ba

Я собираюсь сделать это с Java.Мой вопрос заключается в том, как мне ввести несколько строк ввода, как в примере, в строку Windows cmd.exe, если не вводить данные во входной файл?Потому что нажатие Enter просто запустит программу с одной строкой ввода вместо создания новой.Кроме того, поскольку назначение помечается автоматически, ввод не может быть интерактивным, поэтому как мне узнать, когда прекратить чтение?

Спасибо.

Ответы [ 3 ]

2 голосов
/ 05 мая 2011

Из задания:

Вы можете предположить, что вход придет из стандартного ввода в потоке, который представляет одну строку в строке. В реальность, вход будет исходить от файл, который передается по стандарту в. Вывод должен быть отправлен на стандартный выход. Пример входного и выходного файла: имеется.

Просто прочитайте System.in и напишите в System.out. Поскольку входные данные будут переданы в stdin, вы получите EOF в конце входного файла.

При взаимодействии через окно CMD используйте Ctrl-Z, чтобы указать EOF (в Windows) или в системе Linux, используйте Ctrl-D

1 голос
/ 08 мая 2011

Этот код будет работать без проблем -

Scanner sc = new Scanner(System.in);   
String bitstring="";   
while(sc.hasNextLine()){  //until no other inputs to proceed            
     bitstring=sc.nextLine();//save it to the bitstring
//proceed with your other codes
}
1 голос
/ 05 мая 2011

Если вы можете использовать System.in, то вы можете использовать InputStreamReader, который читает из потока System.in.Затем используйте BufferedReader для получения каждой строки, используя метод readLine ().Например, посмотрите на этот код:

InputStreamReader input = new InputStreamReader(System.in) 
BufferedReader reader = new BufferedReader(input);
while (reader.readLine()) {
//Your code here. It will finish when the reader finds an EOL.
}
...