Como llegar Java entrada multi-línea y determina el final de la cadena de entrada

void Main (args String []) {public static
escáner sc = new Scanner (System.in);
Lista <lista> list = new ArrayList <lista> ();
Lista1 list = new ArrayList ();
Cadena s = null;
mientras que "{() (s = sc.nextLine ()) es igual ("!).
String [] = str s.split ( ")";
for (int i = 0; i <str.length; i ++) {
list1.add (Integer.parseInt (str [i]));
}
List.add (lista1);
}
System.out.println (lista);
}

Acabado de la red

¿Por qué no hasNextLine método de escáner para determinar el final?

Dependiendo de las fuentes de entrada, método hasNextLine escáner producirá resultados diferentes, si el escáner fuente de entrada de un archivo se escribe no es ningún problema,
pero su entrada de la consola (System.in) En este momento, cuando el programa se ejecuta a sc encontrado .hasNextLine () método está vacío (porque no se ha introducido nada), entonces el método hasNextLine
bloqueará el hilo hasta después de entrar en el teclado va a continuar, pero el problema es que una vez que el programa entrará en cualquier carácter Creo que ha introducido, como ocurre con la entrada hasNextLine
devuelve el método verdadera necesariamente, se convierte en este ciclo el ciclo de la muerte, todo nunca será capaz de bailar!

Entonces, ¿cómo cree que está para hacer la entrada de programa terminado, en lugar de cualquiera de su entrada como una entrada normal de tratar con él, la respuesta es Ctrl + Z! Intro después Ctrl + Z puede expresar su final es para entrar! Esta es una señal del fin es equivalente a EOF

prueba de la máquina, necesito leer las cadenas de múltiples líneas, y la entrada al programa se introduce automáticamente en el propio sistema, no puedo añadir manualmente más espacio o un terminador de cualquiera de mi definición.

Ahora pensar en ello, a decir antes de usar Ctrl + z es de ninguna manera que ha introducido, lo que significa que puedo escribir un programa de ejecución directa, el sistema entrará automáticamente los datos de patrones especificados, así que tengo que saber cómo puedo recibir estos formatos de entrada, y cómo el final de la entrada.

El problema, la forma de resolver ah?

hasNext ()
determina si actualmente hay siguiente segmento escáner después de la posición de exploración.
hasNextLine ()
Si hay otra línea de la entrada de este escáner, devuelve cierto.
next ()
Encuentra y devuelve el escáner de una marca de lleno.
nextLine ()
Este escáner más allá de la línea actual, y devuelve la entrada saltado.
la nextInt ()
devolverá la consola de escaneado conformación de los datos.

Publicados 254 artículos originales · ganado elogios 23 · Vistas a 50000 +

Supongo que te gusta

Origin blog.csdn.net/qq_30242987/article/details/104694228
Recomendado
Clasificación