es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

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(", ");
Tags:  , ,

Answer

  1. Avatar for 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.

Comments are closed.