diff --git a/src/Text.java b/src/Text.java index d4b75ce..54e52e2 100644 --- a/src/Text.java +++ b/src/Text.java @@ -1,9 +1,6 @@ import java.io.File; import java.io.FileNotFoundException; -import java.util.ArrayList; -import java.util.HashMap; -import java.util.Map; -import java.util.Scanner; +import java.util.*; public class Text { @@ -47,6 +44,12 @@ public class Text { return true; } + /** + * Method to get all paragraph of the existing instance. + * + * @return returns a ArrayList with all text inside. + */ + public ArrayList getText() { return text; } @@ -98,6 +101,14 @@ public class Text { return true; } + /** + * This method deletes a specific Paragraph. As a Parameter it uses a int. + * If the Parameter is valid it deletes the specific Pararaph otherwise returns false + * + * @param paragraphNumber + * @return False: If the int is not a valid paragraph. + * @return True: If the int is a valid paragraph number + */ public boolean del(int paragraphNumber) { if (paragraphExists(paragraphNumber)) { @@ -107,31 +118,54 @@ public class Text { return false; } + /** + * This method deletes the last paragraph in the text Array. + * + * @return True: if paragraph has been deleted. + */ public boolean del() { text.remove(text.size() - 1); return true; } + /** + * This method creates a ArrayList. + * Every word which is used in the text more than 3 times + * will be added to the ArrayList with the paragraphes where the word is been used. + * + * @return ArrayList + */ + public ArrayList index() { wordbook = createWordlist(); ArrayList output = new ArrayList<>(); for (Map.Entry> entry : wordbook.entrySet()) { String key = entry.getKey(); ArrayList values = entry.getValue(); + String input = ""; if (values.get(0) >= 3) { - output.add(key); - for (int value : values) { - output.add(String.valueOf(value)); + input += key + " "; + for (int i = 1; i < values.size(); i++) { + input += values.get(i) + ", "; } + output.add(input); } } return output; } + /** + * This method counts all Words in text and adds them together with the paragraph where the word is been used to a Hashmap. + * + * @return HashMap> + */ private HashMap> createWordlist() { 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)) { @@ -147,7 +181,7 @@ public class Text { } else { zahlenListe = new ArrayList<>(); zahlenListe.add(1); - zahlenListe.add(zähler); + zahlenListe.add(i + 1); wordbook.put(wort, zahlenListe); } } diff --git a/test/TextTest.java b/test/TextTest.java index 5c6b081..46a5d13 100644 --- a/test/TextTest.java +++ b/test/TextTest.java @@ -1,25 +1,25 @@ +import org.junit.jupiter.api.Assertions; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; import java.util.ArrayList; import java.util.HashMap; -import java.util.Map; public class TextTest { Text txt; - HashMap> hMap; ArrayList sListe; @BeforeEach void setup() { txt = new Text(); - hMap = new HashMap<>(); - sListe = new ArrayList<>(); - sListe.add("Hallo hallo zusammen"); - sListe.add("Hallo wie gehts"); } @Test void indexTest() { + txt.add("Hallo Hallo zusammen !test!"); + txt.add("Hallo, wie zusammen"); + txt.add("Hallo,wie wie zusammen"); + sListe= txt.index(); + Assertions.assertEquals("Hallo 1, 2, 3, ",sListe.get(0)); } }