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.File;
|
||||||
import java.io.FileNotFoundException;
|
import java.io.FileNotFoundException;
|
||||||
import java.util.ArrayList;
|
import java.util.*;
|
||||||
import java.util.HashMap;
|
|
||||||
import java.util.Map;
|
|
||||||
import java.util.Scanner;
|
|
||||||
|
|
||||||
public class Text {
|
public class Text {
|
||||||
|
|
||||||
|
@ -47,6 +44,12 @@ public class Text {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Method to get all paragraph of the existing instance.
|
||||||
|
*
|
||||||
|
* @return returns a ArrayList<String> with all text inside.
|
||||||
|
*/
|
||||||
|
|
||||||
public ArrayList<String> getText() {
|
public ArrayList<String> getText() {
|
||||||
return text;
|
return text;
|
||||||
}
|
}
|
||||||
|
@ -98,6 +101,14 @@ public class Text {
|
||||||
return true;
|
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) {
|
public boolean del(int paragraphNumber) {
|
||||||
if (paragraphExists(paragraphNumber)) {
|
if (paragraphExists(paragraphNumber)) {
|
||||||
|
@ -107,31 +118,58 @@ public class Text {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This method deletes the last paragraph in the text Array.
|
||||||
|
*
|
||||||
|
* @return True: if paragraph has been deleted.
|
||||||
|
*/
|
||||||
public boolean del() {
|
public boolean del() {
|
||||||
text.remove(text.size() - 1);
|
text.remove(text.size() - 1);
|
||||||
return true;
|
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() {
|
public ArrayList<String> index() {
|
||||||
wordbook = createWordlist();
|
wordbook = createWordlist();
|
||||||
ArrayList<String> output = new ArrayList<>();
|
ArrayList<String> output = new ArrayList<>();
|
||||||
for (Map.Entry<String, ArrayList<Integer>> entry : wordbook.entrySet()) {
|
for (Map.Entry<String, ArrayList<Integer>> entry : wordbook.entrySet()) {
|
||||||
String key = entry.getKey();
|
String key = entry.getKey();
|
||||||
ArrayList<Integer> values = entry.getValue();
|
ArrayList<Integer> values = entry.getValue();
|
||||||
|
String input = "";
|
||||||
if (values.get(0) >= 3) {
|
if (values.get(0) >= 3) {
|
||||||
output.add(key);
|
input += key + " ";
|
||||||
for (int value : values) {
|
for (int i = 1; i < values.size(); i++) {
|
||||||
output.add(String.valueOf(value));
|
if(i+1 == values.size()){
|
||||||
|
input += values.get(i)+"";
|
||||||
|
}else {
|
||||||
|
input += values.get(i) + ", ";
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
output.add(input);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return output;
|
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() {
|
private HashMap<String, ArrayList<Integer>> createWordlist() {
|
||||||
for (int i = 0; i < text.size(); i++) {
|
for (int i = 0; i < text.size(); i++) {
|
||||||
String[] woerter = text.get(i).trim().toLowerCase().split("[ :;.,!?><\'/]+");
|
String[] woerter = text.get(i).trim().toLowerCase().split("[ :;.,!?><\'/]+");
|
||||||
for (String wort : woerter) {
|
for (String wort : woerter) {
|
||||||
|
String firstLetter = wort.substring(0,1);
|
||||||
|
String restLetters = wort.substring(1);
|
||||||
|
wort = firstLetter.toUpperCase()+restLetters;
|
||||||
ArrayList<Integer> zahlenListe;
|
ArrayList<Integer> zahlenListe;
|
||||||
int zähler = 1;
|
int zähler = 1;
|
||||||
if (wordbook.containsKey(wort)) {
|
if (wordbook.containsKey(wort)) {
|
||||||
|
@ -147,7 +185,7 @@ public class Text {
|
||||||
} else {
|
} else {
|
||||||
zahlenListe = new ArrayList<>();
|
zahlenListe = new ArrayList<>();
|
||||||
zahlenListe.add(1);
|
zahlenListe.add(1);
|
||||||
zahlenListe.add(zähler);
|
zahlenListe.add(i + 1);
|
||||||
wordbook.put(wort, zahlenListe);
|
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.BeforeEach;
|
||||||
import org.junit.jupiter.api.Test;
|
import org.junit.jupiter.api.Test;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
import java.util.Map;
|
|
||||||
|
|
||||||
public class TextTest {
|
public class TextTest {
|
||||||
Text txt;
|
Text txt;
|
||||||
HashMap<String, ArrayList<Integer>> hMap;
|
|
||||||
ArrayList<String> sListe;
|
ArrayList<String> sListe;
|
||||||
|
|
||||||
@BeforeEach
|
@BeforeEach
|
||||||
void setup() {
|
void setup() {
|
||||||
txt = new Text();
|
txt = new Text();
|
||||||
hMap = new HashMap<>();
|
|
||||||
sListe = new ArrayList<>();
|
|
||||||
sListe.add("Hallo hallo zusammen");
|
|
||||||
sListe.add("Hallo wie gehts");
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
void indexTest() {
|
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