diff --git a/src/Text.java b/src/Text.java index 1988e2b..f26c4ed 100644 --- a/src/Text.java +++ b/src/Text.java @@ -1,5 +1,3 @@ -import java.io.File; -import java.io.FileNotFoundException; import java.util.*; public class Text { @@ -47,7 +45,7 @@ public class Text { /** * Method to get all paragraph of the existing instance. * - * @return returns a ArrayList with all text inside. + * @return returns a ArrayList with all paragraphs inside. */ public ArrayList getText() { @@ -135,20 +133,21 @@ public class Text { * * @return ArrayList */ - public ArrayList index() { wordbook = createWordlist(); + String input; ArrayList output = new ArrayList<>(); + ArrayList values; for (Map.Entry> entry : wordbook.entrySet()) { + input = ""; String key = entry.getKey(); - ArrayList values = entry.getValue(); - String input = ""; + values = entry.getValue(); if (values.get(0) >= 3) { input += key + " "; for (int i = 1; i < values.size(); i++) { - if(i+1 == values.size()){ - input += values.get(i)+""; - }else { + if (i + 1 == values.size()) { + input += values.get(i) + ""; + } else { input += values.get(i) + ", "; } } @@ -159,35 +158,37 @@ public class Text { } /** - * This method counts all Words in text and adds them together with the paragraph where the word is been used to a Hashmap. + * This method counts all Words in text and adds the count together with the paragraph where the word is been used to a Hashmap. * * @return HashMap> */ private HashMap> createWordlist() { + int counter; + ArrayList numbersList; + String firstLetter; + String restLetters; for (int i = 0; i < text.size(); i++) { - String[] woerter = text.get(i).trim().toLowerCase().split("[ :;.,!?><'/]+"); - for (String wort : woerter) { - String firstLetter = wort.substring(0,1); - String restLetters = wort.substring(1); - wort = firstLetter.toUpperCase()+restLetters; - ArrayList zahlenListe; - int zähler = 1; - if (wordbook.containsKey(wort)) { - zahlenListe = wordbook.get(wort); - zähler = zahlenListe.get(0); - zahlenListe.remove(0); - zahlenListe.add(0, zähler + 1); + String[] words = text.get(i).trim().toLowerCase().split("[ :;.,!?><'/\n]+"); + for (String word : words) { + counter = 1; + firstLetter = word.substring(0, 1); + restLetters = word.substring(1); + word = firstLetter.toUpperCase() + restLetters; + if (wordbook.containsKey(word)) { + numbersList = wordbook.get(word); + counter = numbersList.get(0); + numbersList.remove(0); + numbersList.add(0, counter + 1); - if (zahlenListe.get(zahlenListe.size() - 1) < i + 1) { - zahlenListe.add(i + 1); + if (numbersList.get(numbersList.size() - 1) < i + 1) { + numbersList.add(i + 1); } - wordbook.put(wort, zahlenListe); } else { - zahlenListe = new ArrayList<>(); - zahlenListe.add(1); - zahlenListe.add(i + 1); - wordbook.put(wort, zahlenListe); + numbersList = new ArrayList<>(); + numbersList.add(counter); + numbersList.add(i + 1); } + wordbook.put(word, numbersList); } } return wordbook; diff --git a/test/TextTest.java b/test/TextTest.java index d7e78b1..d8e2190 100644 --- a/test/TextTest.java +++ b/test/TextTest.java @@ -16,10 +16,13 @@ public class TextTest { @Test void indexTest() { - txt.add("Hallo Hallo zusammen !test!"); + txt.add("Hallo ?Hallo> zusammen !test!"); txt.add("Hallo, wie zusammen"); - txt.add("Hallo,wie wie zusammen"); + txt.add("Hallo! Wie wie zusammen"); sListe= txt.index(); - Assertions.assertEquals("Hallo 1, 2, 3",sListe.get(0)); + for (String str : sListe){ + System.out.println(str); + } + Assertions.assertEquals("Hallo 1, 2, 3",sListe.get(0)); } }