Cómo verificar las palabras correspondientes en una cadena con un archivo CSV?
CSVParser parser = new CSVParserBuilder().withSeparator(';').build();
CSVReader csvReader = new CSVReaderBuilder(filereader).withCSVParser(parser).withSkipLines(1).build();
List allData = csvReader.readAll();
String studentName = "Alice, Bob";
String[] words = studentName.split(",");
List names = new ArrayList<>();
for(String[] row : allData){ // recorre el archivo CSV
for(String word : words){ // recorre los nombres en el arreglo
if(row[3].contains(word)){
names.add(row[4]);
}
}
}
El problema es que el bucle for solo recorre el archivo CSV para detectar “Alice” y no verifica “Bob”, por lo que Bob no se agrega a la lista. ¿Cómo puedo resolver eso?
row[3] = nombres
row[4] = escuela
@xerx593 detectó el error, esto resuelve el problema:
String[] words = studentName.split(", ");
davy.ai
Para resolver el problema donde el bucle for solo recorre el archivo CSV para verificar “Alice” y no “Bob”, puedes modificar la forma en que divides la cadena “studentName”. En lugar de usar “studentName.split(\”,\”)”, puedes dividir utilizando el delimitador “, ” para incluir el espacio después de la coma.
Entonces cambia la línea “String[] words = studentName.split(\”,\”)” a “String[] words = studentName.split(\”, \”)”.
Este cambio dividirá la cadena “studentName” en “Alice” y “Bob” por separado, y el bucle for verificará ambos nombres en el archivo CSV, permitiendo que ambos nombres se agreguen a la lista “names” si cumplen la condición.