¿Cómo salir del ciclo while que involucra hasNextLine ()?

Tengo un conjunto de valores dobles, y se pueden recuperar llamando al método getArrivalTime()que pertenece a la clase Customer. Cuando ejecuto este ciclo while, no puedo imprimir mi salida ya que no puedo salir del ciclo.

while (sc.hasNextLine()) {

      Customer customer = new Customer(sc.nextDouble());

      String timeToString = String.valueOf(customer.getArrivalTime());

      if (!(timeToString.isEmpty())) {
        c.add(customer);
      } else {
        break;
      }
}

p.ej

Entradas:

0.500
0.600
0.700

Ya he incluido un break;al final del ciclo. Que mas puede hacer?

Respuesta 1

Puede hacer esta ruptura del bucle en una línea en blanco si lee la entrada como cadenas y luego las analiza en dobles.

while (sc.hasNextLine()) {
    String line = sc.nextLine();
    if (line.isEmpty()) {
        break;
    }
    c.add(new Customer(Double.parseDouble(line)));
}

Alternativamente, podría usar en hasNextDouble()lugar de hasNextLine()en su código existente. Es un error mezclar hasNextLine()y nextDouble().

Respuesta: 2

Supongo que estás usando a Scanner. Estás iterando línea por línea. Así que no llame, nextDoublepero nextLineluego analice su línea como Doble.

Aquí hay una versión simplificada:

import java.util.Scanner;

public class Snippet {
    public static void main(String[] args) {

        try (Scanner sc = new Scanner("0.500\r\n" + "0.600\r\n" + "0.700");) {
            while (sc.hasNextLine()) {
                String line = sc.nextLine();
                double customer = Double.parseDouble(line);
                System.out.println(customer);
            }
        }
    }
}

De lo contrario, si el formato de su archivo coincide con el patrón doble (depende de su configuración regional ...), puede usarlo hasNextDoublecon nextDouble:

import java.util.Scanner;

Fragmento de clase pública {public static void main (String [] args) {

    try (Scanner sc = new Scanner("0,500\r\n" + "0,600\r\n" + "0,700");) {
        while (sc.hasNextDouble()) {
            double customer = sc.nextDouble();
            System.out.println(customer);
        }
    }
}

}

HTH!

Respuesta: 3

Quiero liberar texturas, buffers y sombreadores en mi juego de Android, si el usuario presiona el botón Atrás, llama al método de actividad terminar (), lo que lleva a onDestroy (), que anulé para limpiar los datos del juego, cerrar ...

Estoy usando JBoss 7.1 con JDK1.7. Estoy planeando actualizar a Java11. JBoss 7.1 no se está iniciando. ¿Podría decirme qué versión de JBoss tengo que usar con Java11?

Aquí hay algo similar que estoy trabajando en mi proyecto. Las clases son diferentes por una razón obvia. Digamos que tengo clase public class Division {String className; Mapa <Cadena, ...

Posible duplicado: busque los paquetes dependientes en Eclipse en tiempo de ejecución ¿Cómo obtener una lista de todos los paquetes dependientes del paquete actualizado? Por ejemplo, situación cuando alguna aplicación cargó lo mismo ...