Cómo tomar la entrada de varias líneas en Java

Zaham2:

Estoy tratando de tomar la entrada del usuario de varias líneas en Java y dividir las líneas en una array, necesito esto para resolver un problema para un juez de línea. Estoy usando un Scannertomar de entrada. No puedo determinar el final de la entrada. Siempre tengo un bucle infinito, ya que no sé el tamaño de entrada (es decir, número de líneas)

Terminación de entrada con una cadena vacía (clic ENTER) todavía es un bucle infinito. Código que se indica a continuación.

  public static void main(String[] args) {

        ArrayList<String> in = new ArrayList<String>();
        Scanner s = new Scanner(System.in);

        while (s.hasNextLine() == true){
            in.add(s.nextLine());
            //infinite loop
        }
    }

Ni siquiera estoy seguro de por qué el bucle se ejecuta la primera vez. Creo que el hasNextLine()debería ser falsa la primera vez, ya que no hay entrada fue tomada todavía. Cualquier ayuda o aclaración apreciados.

Coronero :

Se podría utilizar la línea vacía como un bucle automático:

while (s.hasNextLine()){ //no need for "== true"
    String read = s.nextLine();
    if(read == null || read.isEmpty()){ //if the line is empty
        break;  //exit the loop
    }
    in.add(read);
    [...]
}

Supongo que te gusta

Origin http://43.154.161.224:23101/article/api/json?id=336111&siteId=1
Recomendado
Clasificación