Probleme beim Überprüfen, ob ein Wort von einem String-Array in einem anderen String-Array ist. Das ist, was ich habe, so weit:Überprüfen, ob das String-Array ein Wort in einem anderen String-Array enthält
FileInputStream fis = new FileInputStream("TranHistory.csv");
InputStreamReader isr = new InputStreamReader(fis, "UTF-8");
CSVReader reader = new CSVReader(isr);
String[] groceries = new String[]{"albertsons", "costco"};
for (String[] cols; (cols = reader.readNext()) != null;) {
if(cols[4].toLowerCase().contains(groceries)){
System.out.print(cols[4]);
}
}
Der obige Code derzeit mir einen Fehler geben, weil .contains() nicht auf String Array angewandt werden. Das funktioniert aber nur, wenn ich die if-Anweisung, um diese Änderung:
if(cols[4].toLowerCase().contains("albertsons")){
System.out.print(cols[4]);
}
Mein Problem ist, dass String [] Lebensmittel viele Lebensmittelgeschäfte haben wird, so denken zu vergleichen ich String [] col String [] Lebensmittel am meisten Effiziente Art und Weise, dies zu tun, habe ich nur Probleme bei der Umsetzung.
LÖSUNG:
ich es herausgefunden ... Sie for-Schleife eine verschachtelte zu tun haben. Das ist, was ich tat:
String[] groceries = {"albertsons", "costco"};
for (String[] cols; (cols = reader.readNext()) != null;) {
for (int i = 0; i < groceries.length; i++){
if(cols[4].toLowerCase().contains(groceries[i]))
{
System.out.print(cols[4]);
}
}
}
Ich erhalte eine Fehlermeldung: kann Methode nicht lösen Set.of – Stephan
'Set # von' in Java 9. eingeführt wurde, sollten Sie aktualisieren, wenn Sie nicht bereits haben! –
Wenn Sie nicht updaten wollen (oder können), können Sie 'Set' mit folgendem Befehl initialisieren:' new HashSet <> (Arrays.asList ("albertsons", "costco")); ' –