Metod som räknar antal gånger ett ord och delsträngar framkommer i en lista Java
Uppgift: Skriv en metod occurences som tar en sträng, och en lista av ord som parametrar och som returnerar hur många av orden i listan som förekommer i strängen minst en gång. Kontrollen ska ske utan hänsyn till stora och små bokstäver. Däremot behöver du inte tänka på att ordet ska förekomma exakt, utan det räcker med att delsträngar matchar.
Exempel: Hundregister och listan [katt, hund, ister] ska returnera 2 eftersom hund och ister bägge förekommer i strängen Hundregister.
Det här har jag kommit fram till hittills men får felkompileringar och vet inte riktigt vad jag ska ändra på för att få koden att funka och ifall den uppfyller kraven uppgiften letar efter. Här är bild på min kod med problemet "word cannot be resolved" Någon som kan hjälpa lite? (:
import java.util.ArrayList;
public class WordsInListCounter {
public static void main(String[] args){
ArrayList<String> words = new ArrayList<>();
words.add("katt");
words.add("hund");
words.add("ister");
int amount = occurences("Hundregister", words);
System.out.println(amount);
}
private static int occurences(String dog, ArrayList<String> words ){
int amount = 0;
for ( String word : words);
{
if (dog.toLowerCase().contains(word.toLowerCase()))
amount++;
}
return amount;
}
}
Ta bort semikolonet efter
for (String word:words)
Det gör att loopen slutar där och det är inte det du vill.
Tillägg: 2 jan 2023 17:08
Om det står "occurences" i uppgiften så är det inte du som har stavat fel, men det heter "occurrences".
Kan man använda vanlig foreach även för ArrayList?
Har för mig ArrayList har stöd för egen .forEach() metod, likt så:
https://www.geeksforgeeks.org/arraylist-foreach-method-in-java/