Merge remote-tracking branch 'origin/main'
# Conflicts: # src/TextEditor.java
This commit is contained in:
commit
f588794086
|
@ -1,21 +0,0 @@
|
|||
import java.util.Scanner;
|
||||
|
||||
public class SystemInput {
|
||||
|
||||
private Scanner scanner;
|
||||
|
||||
public SystemInput() {
|
||||
scanner = new Scanner("");
|
||||
}
|
||||
|
||||
/**
|
||||
* Method: CheckForInput
|
||||
*/
|
||||
public String[] checkForInput() {
|
||||
|
||||
return new String[] {
|
||||
"Test"
|
||||
};
|
||||
}
|
||||
|
||||
}
|
|
@ -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<String> with all text inside.
|
||||
*/
|
||||
|
||||
public ArrayList<String> 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,58 @@ 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<String>.
|
||||
* 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<String>
|
||||
*/
|
||||
|
||||
public ArrayList<String> index() {
|
||||
wordbook = createWordlist();
|
||||
ArrayList<String> output = new ArrayList<>();
|
||||
for (Map.Entry<String, ArrayList<Integer>> entry : wordbook.entrySet()) {
|
||||
String key = entry.getKey();
|
||||
ArrayList<Integer> 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++) {
|
||||
if(i+1 == values.size()){
|
||||
input += values.get(i)+"";
|
||||
}else {
|
||||
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<String, ArrayList < Integer>>
|
||||
*/
|
||||
private HashMap<String, ArrayList<Integer>> 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<Integer> zahlenListe;
|
||||
int zähler = 1;
|
||||
if (wordbook.containsKey(wort)) {
|
||||
|
@ -147,7 +185,7 @@ public class Text {
|
|||
} else {
|
||||
zahlenListe = new ArrayList<>();
|
||||
zahlenListe.add(1);
|
||||
zahlenListe.add(zähler);
|
||||
zahlenListe.add(i + 1);
|
||||
wordbook.put(wort, zahlenListe);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -0,0 +1,10 @@
|
|||
import java.util.Scanner;
|
||||
|
||||
public class TextInput {
|
||||
|
||||
private static Scanner sc = new Scanner("");
|
||||
|
||||
public static String[] checkForInput() {
|
||||
return sc.nextLine().split("");
|
||||
}
|
||||
}
|
|
@ -0,0 +1,24 @@
|
|||
public class TextLogik {
|
||||
private Text text;
|
||||
|
||||
public TextLogik() {
|
||||
text = new Text();
|
||||
String command[];
|
||||
|
||||
do {
|
||||
command = TextInput.checkForInput();
|
||||
|
||||
switch (command[0]) {
|
||||
case "ADD":
|
||||
break;
|
||||
case "REMOVE":
|
||||
break;
|
||||
default:
|
||||
System.out.println("Command not found. Try again");
|
||||
break;
|
||||
}
|
||||
|
||||
} while ("exit".equals(command[0]));
|
||||
}
|
||||
|
||||
}
|
|
@ -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<String, ArrayList<Integer>> hMap;
|
||||
ArrayList<String> 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));
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue