2011-05-05 12 views
6

Estoy tratando de hacer una tarea para la escuela y no sé cómo manejar la entrada. He proporcionado un enlace a continuación para el contexto de la misión:Lista de cadenas (líneas múltiples) como entrada de línea de comandos en Java

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

que tienen una idea general acerca de cómo hacer todo lo que la asignación de pregunta, pero estoy seguro de cómo hacer frente a la entrada.

Una muestra de entrada es:

a0
a00
ab000

que da una salida:

Árbol 1:
no válida!
árbol 2:
altura: -1
longitud de la trayectoria: 0
completa: sí
postorden:
Árbol 3:
altura: 0
longitud de la trayectoria: 0
completa: sí
postorden : a
árbol 4:
altura: 1
longitud de la trayectoria: 1
completa: sí
orden posterior: ba

tengo la intención de hacer esto con Java. Mi pregunta es ¿cómo ingreso varias líneas de entrada, como en la muestra, en la línea de Windows cmd.exe cuando no está canalizando un archivo de entrada? Debido a que presionar enter simplemente ejecutaría el programa con una línea de entrada en lugar de hacer una nueva línea. Además, dado que la asignación se marca automáticamente, la entrada no puede ser interactiva, entonces, ¿cómo voy a saber cuándo dejar de leer?

Gracias.

+1

no puede ver el enlace a la asignación ... – cMinor

+0

Oh lo siento olvidó preparar al público . Debería funcionar ahora. – Jigglypuff

+1

+1 Pregunta bien escrita y específica. Bienvenido a SO. –

Respuesta

2

De la misión:

Se puede suponer que la entrada vendrá de la entrada estándar en una corriente que representa una cadena por línea. En la realidad , la entrada vendrá de un archivo que está conectado a la entrada estándar. La salida debe enviarse a la salida estándar. Un archivo de entrada y salida de muestra es disponible.

Simplemente lea System.in y escriba en System.out. Como la entrada se canalizará a stdin, obtendrá EOF al final del archivo de entrada.

Al interactuar a través de la ventana de CMD, use Ctrl-Z para indicar EOF (en Windows) o en un sistema Linux, utilice Ctrl-D

+0

Gracias por la respuesta. ¿También hay una forma en que puedo indicar EOL, por lo que podría pasar una entrada como la de la entrada de muestra con varias líneas a través de la ventana de CMD? – Jigglypuff

+0

EOL es solo la tecla ENTRAR –

1

Si usted puede utilizar el sistema.en, entonces podría usar un InputStreamReader que lea desde una secuencia de System.in. Luego, use un BufferedReader para obtener cada línea usando el método readLine(). Por ejemplo, un vistazo a este código:

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. 
} 
1

Este código funcionará sin ningún problema -

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 
} 
Cuestiones relacionadas