Closed tomasserravento closed 3 years ago
¿Qué uso de .split
están pensando?
Profe buenas! La idea es mostrar un caso de lectura con split para conocer alguna otra forma de obtener datos.
Metodo leerArchivoConStrings
Este metodo devolvera lo mismo que el metodo que explicamos anteriormente (leerArchivo). La unica diferencia es que vamos a usar scanner.nextLine() en vez del nextInt y nextDouble para analizar otra forma de obtener unformacion.
El metodo nextLine te va a devolver cada linea que tenga el archivo (separando por enter).
El metodo hasNextLine te va a devolver un booleano diciendo si podes obtener una linea siguiente o no (util en casos donde uno recorre un while para obtener lineas siguientes)
Para obtener un numero entero de un String deberemos usar: Integer.valueOf(String) y lo mismo con otro tipo de dato.
El metodo split lo que hara es devolver un vector de String separando una String dada por un String dado (ejemplo un espacio o patron regex)
public double[] leerArchivoConStrings() {
Scanner scanner = null;
double[] datos = null;
try {
File file = new File("casos de prueba/in/" + this.nombre + ".in");
scanner = new Scanner(file);
// Especifica la configuración regional que se va a utilizar
scanner.useLocale(Locale.ENGLISH);
// Para la configuración regional de Argentina, utilizar:
// arch.useLocale(new Locale("es_AR"));
String linea = scanner.nextLine();
int cant = Integer.valueOf(linea);
datos = new double[cant];
String valoresLinea[] = linea.split(" ");
for (int i = 0; i < valoresLinea.length; i++) {
double n = Double.valueOf(valoresLinea[i]);
datos[i] = n;
}
} catch (Exception e) {
e.printStackTrace();
} finally {
// Cerrar el archivo, eso es mucho muy importante
scanner.close();
}
return datos;
}
Referido en otro issue
Agregar ejemplo en el que se use el método split en el repositorio de I/O
https://github.com/programacion-avanzada/workspace/tree/master/basicas-entrada-salida