Ich bin ein relativ neuer Programmierer lernen Scala und funktionale Programmierung durch eine Udemy-Klasse.Filter Wörter von einer Liste mit Wörtern von anderen
Ich bin bestrebt, eine Liste von Zeichenfolgen basierend auf einer anderen Liste von Zeichenfolgen zu filtern. Ich möchte Sie die erste Liste reduzieren, so dass, wenn ich es ausdrucken, es nur die Worte enthält - „rob“, „lernt“, „scala“
Hier ist der Code Ich arbeite mit:
val list1:Array[String] = Array("rob","you", "to","learns", "your", "the","scala", "a")
val badWords:Array[String] = Array("you", "to", "your", "the", "a")
val list2 = list1.map(x => badWords.map(badWord => list1.filter(word => word != badWord)))
for (word <- list2) {
println(word)
}
Meine Logik ist, dass von list1 für jedes Wort, ich dann jedes BADWORD Element gegen den aktuellen list1 Artikel zu vergleichen versuchen, um zu bestimmen, ob es oder nicht gefiltert werden soll.
Ich habe dies erfolgreich durch hartcoding in was ich gefiltert haben möchte, wie val list2 = list1.filter(_ != "to")
ausgeführt. Offensichtlich möchte ich diesem die Fähigkeit zum Skalieren geben, also würde ich gerne lernen, wie man die Filter- und Kartenfunktionen koppelt (wenn das der richtige Ansatz ist).
Vielen Dank im Voraus, lassen Sie mich wissen, wenn ich weitere Informationen oder Kontext bereitstellen sollte.
'list1 diff badWords' – jwvh
ja das ist, was ich –
Sie nicht erreichen war auf der Suche diff verwenden, es wird nicht mehr als eine Instanz von einem schlechten Wort entfernen –