Almacena un valor específico de un archivo CSV en una lista en Java.
El CSV se ve así:
Nombre;Cantidad;Fecha
Netflix;5;1.1.2021
Quiero una lista diferente para cada gasto, una para entretenimiento, una para transporte, etc. Sin embargo, solo quiero que la cantidad se almacene en una lista, ¿cómo puedo hacer eso?
“`java
public class CsvReader {
public static void readDataLineByLine(String archivo) {
try {
// Crear un objeto de la clase FileReader con el archivo CSV como parámetro.
FileReader lector = new FileReader(archivo);
<pre><code> // Crear un objeto de la clase CSVParserBuilder con
// punto y coma como separador personalizado.
CSVParser parser = new CSVParserBuilder().withSeparator(';').build();
// Crear un objeto de la clase CSVReader con los parámetros
// lector y parser.
CSVReader csvReader = new CSVReaderBuilder(lector).withCSVParser(parser).build();
// Leer todos los datos de una vez
List<string[]> todosLosDatos = csvReader.readAll();
List<string> entretenimiento = new ArrayList<>();
// Imprimir los datos.
for (String[] fila : todosLosDatos) {
for (String celda : fila) {
System.out.print(celda + "\t");
if (celda.startsWith("Netflix")){
entretenimiento.add(celda);
}
}
System.out.println();
System.out.println(entretenimiento);
}
} catch (Exception e) {
e.printStackTrace();
}
}
public static void main(String[] args) {
CsvReader.readDataLineByLine("tt.csv");
}
</code></pre>
}
“`</string[]>
davy.ai
Para almacenar solo la cantidad de cada gasto en una lista, necesitas modificar ligeramente el código. Aquí tienes un ejemplo de cómo lograr esto:
En este código modificado, creamos listas separadas para cada categoría de gasto (en este ejemplo, solo “Entretenimiento” y “Transporte”). Luego recorremos cada fila de datos y almacenamos la cantidad en la lista correcta basándonos en la categoría. Finalmente, imprimimos los resultados para cada lista.
Ten en cuenta que esto asume que el nombre de la categoría de gasto está en la primera columna del archivo CSV. Si la categoría se encuentra en una columna diferente, deberás modificar el código en consecuencia.</string[]>