reformating code
This commit is contained in:
parent
c76c35a62c
commit
b8b3d78b78
59
README.md
59
README.md
|
@ -1,49 +1,64 @@
|
||||||
#Texteditor
|
# Texteditor
|
||||||
|
|
||||||
Texteditor is a program to edit a text by in- and output into the console.
|
Texteditor is a program to edit a text by in- and output into the console.
|
||||||
#Usermanual
|
|
||||||
#ADD a paragraph
|
# Usermanual
|
||||||
|
|
||||||
|
# ADD a paragraph
|
||||||
|
|
||||||
```ADD```
|
```ADD```
|
||||||
First please enter the command add to add a new paragraph at the end of text. Then enter the text you want to add .
|
First please enter the command add to add a new paragraph at the end of text. Then enter the text you want to add .
|
||||||
|
|
||||||
```ADD [n]```
|
```ADD [n]```
|
||||||
If you want to add a paragraph between existing paragraphs then please use the command add and then enter the paragraphnumber it should get.
|
If you want to add a paragraph between existing paragraphs then please use the command add and then enter the
|
||||||
After that enter the text you want to add to that paragraph.
|
paragraphnumber it should get. After that enter the text you want to add to that paragraph.
|
||||||
|
|
||||||
|
# DUMMY Text
|
||||||
|
|
||||||
#DUMMY Text
|
|
||||||
```DUMMY```
|
```DUMMY```
|
||||||
First please enter the command dummy to enter a pre written paragraph into the text.
|
First please enter the command dummy to enter a pre written paragraph into the text.
|
||||||
|
|
||||||
```DUMMY [n]```
|
```DUMMY [n]```
|
||||||
If you want to enter a pre written dummy paragraph between existing paragraphs then please enter the command dummy and then enter the paragraphnumber it should get.
|
If you want to enter a pre written dummy paragraph between existing paragraphs then please enter the command dummy and
|
||||||
|
then enter the paragraphnumber it should get.
|
||||||
|
|
||||||
|
# REPLACE a Text
|
||||||
|
|
||||||
#REPLACE a Text
|
|
||||||
```REPLACE```
|
```REPLACE```
|
||||||
First please enter the command replace then enter the characters that you want to replace. After that please enter
|
First please enter the command replace then enter the characters that you want to replace. After that please enter the
|
||||||
the new characters that should replace the old characters. If don't enter a paragraphnumber, the change will be made in the last paragraph.
|
new characters that should replace the old characters. If don't enter a paragraphnumber, the change will be made in the
|
||||||
|
last paragraph.
|
||||||
|
|
||||||
```REPLACE [n]```
|
```REPLACE [n]```
|
||||||
If you want to replace a text from a specific paragraph, please enter the command and the paragraphnumber and then enter the characters you want to
|
If you want to replace a text from a specific paragraph, please enter the command and the paragraphnumber and then enter
|
||||||
replace. After you entered the characters you want to replace please enter now the new characters that should replace the
|
the characters you want to replace. After you entered the characters you want to replace please enter now the new
|
||||||
old characters.
|
characters that should replace the old characters.
|
||||||
|
|
||||||
|
# DELETE a Text
|
||||||
|
|
||||||
#DELETE a Text
|
|
||||||
```DEL```
|
```DEL```
|
||||||
First please enter the command del to delete the last paragraph.
|
First please enter the command del to delete the last paragraph.
|
||||||
|
|
||||||
```DEL [n]```
|
```DEL [n]```
|
||||||
If you want to delete a specific paragraph then please enter the command del and then the paragraph you want to delete.
|
If you want to delete a specific paragraph then please enter the command del and then the paragraph you want to delete.
|
||||||
|
|
||||||
#INDEX
|
# INDEX
|
||||||
|
|
||||||
```INDEX```
|
```INDEX```
|
||||||
Please enter the command index to show the index.
|
Please enter the command index to show the index.
|
||||||
|
|
||||||
#Print the Text
|
# Print the Text
|
||||||
```PRINT```
|
|
||||||
Please enter the command print to print out the current text you have. To change the output format, use the commands ```FORMAT FIX``` and ```FORMAT RAW```
|
```PRINT```
|
||||||
|
Please enter the command print to print out the current text you have. To change the output format, use the
|
||||||
|
commands ```FORMAT FIX``` and ```FORMAT RAW```
|
||||||
|
|
||||||
|
# FORMAT the Text
|
||||||
|
|
||||||
#FORMAT the Text
|
|
||||||
```FORMAT RAW```
|
```FORMAT RAW```
|
||||||
Please enter the command format raw to change the print format to raw. After you changed the format to raw, each paragraph will be printed on one line with it's paragraph number.
|
Please enter the command format raw to change the print format to raw. After you changed the format to raw, each
|
||||||
|
paragraph will be printed on one line with it's paragraph number.
|
||||||
|
|
||||||
```FORMAT FIX [n]```
|
```FORMAT FIX [n]```
|
||||||
Please enter the command format fix and the line length which should be used. After you changed the format to fix, the defined line length will be used to print the text.
|
Please enter the command format fix and the line length which should be used. After you changed the format to fix, the
|
||||||
|
defined line length will be used to print the text.
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
#Equivalent
|
# Equivalent
|
||||||
|
|
||||||
### Text.java Index method
|
### Text.java Index method
|
||||||
|
|
||||||
|
|
|
@ -2,7 +2,8 @@
|
||||||
|
|
||||||
## Aufgabe
|
## Aufgabe
|
||||||
|
|
||||||
Programmieren Sie eine einfache Textverarbeitung mit Ein- und Ausgabe über die Konsole. Diese soll als eigenständige Anwendung laufen und über den folgenden Befehlssatz gesteuert werden:
|
Programmieren Sie eine einfache Textverarbeitung mit Ein- und Ausgabe über die Konsole. Diese soll als eigenständige
|
||||||
|
Anwendung laufen und über den folgenden Befehlssatz gesteuert werden:
|
||||||
|
|
||||||
| Befehl | Beschreibung |
|
| Befehl | Beschreibung |
|
||||||
| :--- | :--- |
|
| :--- | :--- |
|
||||||
|
@ -19,19 +20,29 @@ Programmieren Sie eine einfache Textverarbeitung mit Ein- und Ausgabe über die
|
||||||
## Anforderungen
|
## Anforderungen
|
||||||
|
|
||||||
- Ihre Anwendung muss eigenständig laufen, also durch Aufruf von main() und ohne BlueJ.
|
- Ihre Anwendung muss eigenständig laufen, also durch Aufruf von main() und ohne BlueJ.
|
||||||
- Schreiben Sie Rückmeldungen zu Fehlern (z.B. «Unbekanntes Kommando») statt auf die Standardausgabe (System.out) auf die Standardfehlerausgabe (Sytem.err). Die Syntax ist analog zu der von System.out bekannten ("System.err.println").
|
- Schreiben Sie Rückmeldungen zu Fehlern (z.B. «Unbekanntes Kommando») statt auf die Standardausgabe (System.out) auf
|
||||||
- Sie dürfen alle in der Vorlesung bis zur Abgabe durchgenommenen Konstrukte benutzen, jedoch nur diese. Dies schliesst insbesondere ein: Allen Stoff im BlueJ-Buch bis und mit Kapitel 9, JUnit Testing, Packages zur Verwaltung Ihres Codes. Es schliesst insbesondere aus: Vererbung, Einbindung von Paketen ausserhalb java.util.*
|
die Standardfehlerausgabe (Sytem.err). Die Syntax ist analog zu der von System.out bekannten ("System.err.println").
|
||||||
- Als "Absatz" definieren wir eine über die unten beschriebene Scanner.nextline() - Methode eingelesenen String. Validieren Sie den erhaltenen Input und filtern Sie alle Sonderzeichen (d.h. der in die Anwendung übernommene Text darf nur Buchstaben, Zahlen, Leerzeichen und Satzzeichen enthalten).
|
- Sie dürfen alle in der Vorlesung bis zur Abgabe durchgenommenen Konstrukte benutzen, jedoch nur diese. Dies schliesst
|
||||||
|
insbesondere ein: Allen Stoff im BlueJ-Buch bis und mit Kapitel 9, JUnit Testing, Packages zur Verwaltung Ihres Codes.
|
||||||
|
Es schliesst insbesondere aus: Vererbung, Einbindung von Paketen ausserhalb java.util.*
|
||||||
|
- Als "Absatz" definieren wir eine über die unten beschriebene Scanner.nextline() - Methode eingelesenen String.
|
||||||
|
Validieren Sie den erhaltenen Input und filtern Sie alle Sonderzeichen (d.h. der in die Anwendung übernommene Text
|
||||||
|
darf nur Buchstaben, Zahlen, Leerzeichen und Satzzeichen enthalten).
|
||||||
- Das Einlesen und Abspeichern von Dateien ist in diesem Projekt nicht notwendig.
|
- Das Einlesen und Abspeichern von Dateien ist in diesem Projekt nicht notwendig.
|
||||||
- Ihr Code ist in Javadoc (mindestens für Klassen und Public Methods und zusätzlich für Konstruktoren, jedoch generell ohne Getter/Setter) und wo sinnvoll in Zeilenkommentaren zur Funktionalität dokumentiert. Ihr Klassendiagramm ist auf GitHub abgelegt. Die zur Übersetzung und Start nötigen Aufrufe sind separat im README für Ihr Repo dokumentiert.
|
- Ihr Code ist in Javadoc (mindestens für Klassen und Public Methods und zusätzlich für Konstruktoren, jedoch generell
|
||||||
- Definieren Sie Unit Tests für die Index-Funktionalität, implementieren Sie diese in JUnit und führen Sie sie aus. Dokumentieren Sie die Tests.
|
ohne Getter/Setter) und wo sinnvoll in Zeilenkommentaren zur Funktionalität dokumentiert. Ihr Klassendiagramm ist auf
|
||||||
|
GitHub abgelegt. Die zur Übersetzung und Start nötigen Aufrufe sind separat im README für Ihr Repo dokumentiert.
|
||||||
|
- Definieren Sie Unit Tests für die Index-Funktionalität, implementieren Sie diese in JUnit und führen Sie sie aus.
|
||||||
|
Dokumentieren Sie die Tests.
|
||||||
- Wenden Sie die relevanten Abschnitte im Clean-Code-Handbuch an.
|
- Wenden Sie die relevanten Abschnitte im Clean-Code-Handbuch an.
|
||||||
|
|
||||||
## Hinweise
|
## Hinweise
|
||||||
|
|
||||||
- Achten Sie beim Klassenentwurf auf Kohäsion und Kopplung und beachten Sie auch die Hinweise im Clean-Code-Handbuch.
|
- Achten Sie beim Klassenentwurf auf Kohäsion und Kopplung und beachten Sie auch die Hinweise im Clean-Code-Handbuch.
|
||||||
- Fehlervermeidung und JUnit wird in Programmieren 1 durchgenommen. Planen Sie genügend Zeit ein, um Ihre Tests zu definieren, umzusetzen und allfällige Fehler zu korrigieren.
|
- Fehlervermeidung und JUnit wird in Programmieren 1 durchgenommen. Planen Sie genügend Zeit ein, um Ihre Tests zu
|
||||||
- Für Management und Dokumentation von Arbeitsschritten empfehlen wir das Issue Tracking in GitHub. Andere Lösungen sind denkbar.
|
definieren, umzusetzen und allfällige Fehler zu korrigieren.
|
||||||
|
- Für Management und Dokumentation von Arbeitsschritten empfehlen wir das Issue Tracking in GitHub. Andere Lösungen sind
|
||||||
|
denkbar.
|
||||||
- Eine Quelle für Blindtext ist https://lipsum.com/. Andere Texte sind möglich.
|
- Eine Quelle für Blindtext ist https://lipsum.com/. Andere Texte sind möglich.
|
||||||
|
|
||||||
## Vorgehen
|
## Vorgehen
|
||||||
|
@ -48,7 +59,9 @@ Wir empfehlen, etwa folgendermassen vorzugehen:
|
||||||
|
|
||||||
## Abgabe
|
## Abgabe
|
||||||
|
|
||||||
Legen Sie für das Projekt ein Repository gemäss der bereits aus Projekt 1 bekannten Anleitung an. Der von Ihnen erarbeitete Code muss zur Abgabe bis zur bekanntgegebenen Deadline dort hochgeladen werden. Abgaben auf anderen Services (github.com, OneDrive, etc.) werden nicht gewertet.
|
Legen Sie für das Projekt ein Repository gemäss der bereits aus Projekt 1 bekannten Anleitung an. Der von Ihnen
|
||||||
|
erarbeitete Code muss zur Abgabe bis zur bekanntgegebenen Deadline dort hochgeladen werden. Abgaben auf anderen
|
||||||
|
Services (github.com, OneDrive, etc.) werden nicht gewertet.
|
||||||
|
|
||||||
## Bewertung
|
## Bewertung
|
||||||
|
|
||||||
|
@ -56,24 +69,32 @@ Für diese Aufgabe erhalten Sie maximal 15 Punkte. In die Bewertung fliessen fol
|
||||||
|
|
||||||
### Allgemeine Anforderung (all-or-nothing)
|
### Allgemeine Anforderung (all-or-nothing)
|
||||||
|
|
||||||
- Voraussetzung für Punkterteilung: Das Programm ist lauffähig. (Kriterium: Vorführung oder Test durch Ihre Dozierenden) Ein nicht lauffähiges Programm erhält 0 Punkte.
|
- Voraussetzung für Punkterteilung: Das Programm ist lauffähig. (Kriterium: Vorführung oder Test durch Ihre Dozierenden)
|
||||||
Ein lauffähiges Programm wird in den folgenden beiden Bereichen beurteilt. Für Teil- oder Nichterfüllung werden Abzüge in Ansatz gebracht. Das Nichterfüllen einer Unterkategorie kann zum vollständigen Abzug in einem Bereich führen. Es werden keine Negativpunkte vergeben.
|
Ein nicht lauffähiges Programm erhält 0 Punkte. Ein lauffähiges Programm wird in den folgenden beiden Bereichen
|
||||||
|
beurteilt. Für Teil- oder Nichterfüllung werden Abzüge in Ansatz gebracht. Das Nichterfüllen einer Unterkategorie kann
|
||||||
|
zum vollständigen Abzug in einem Bereich führen. Es werden keine Negativpunkte vergeben.
|
||||||
|
|
||||||
### Bereich Entwicklung
|
### Bereich Entwicklung
|
||||||
|
|
||||||
- Ihr Programm besitzt die geforderte Funktionalität. (Vorführung oder Test durch Ihre Dozierenden)
|
- Ihr Programm besitzt die geforderte Funktionalität. (Vorführung oder Test durch Ihre Dozierenden)
|
||||||
- Sie halten die Vorgaben hinsichtlich einsetzbarer Konstrukte und Clean Code ein. (Codeanalyse durch Ihre Dozierenden, ggf. Erläuterung)
|
- Sie halten die Vorgaben hinsichtlich einsetzbarer Konstrukte und Clean Code ein. (Codeanalyse durch Ihre Dozierenden,
|
||||||
- Sie haben eine gute Klassenaufteilung gefunden. Das Klassendiagramm ist auf GitHub mit hochzuladen. (Analyse durch Ihre Dozierenden, ggf. Erläuterung)
|
ggf. Erläuterung)
|
||||||
- Sie haben sinnvolle Test Cases für die Funktion Index definiert, diese in JUnit umgesetzt und erfolgreich ausgeführt. (Dokumentation über Test Cases und erfolgreiche Tests, diese sind auf GitHub mit hochzuladen.)
|
- Sie haben eine gute Klassenaufteilung gefunden. Das Klassendiagramm ist auf GitHub mit hochzuladen. (Analyse durch
|
||||||
|
Ihre Dozierenden, ggf. Erläuterung)
|
||||||
|
- Sie haben sinnvolle Test Cases für die Funktion Index definiert, diese in JUnit umgesetzt und erfolgreich
|
||||||
|
ausgeführt. (Dokumentation über Test Cases und erfolgreiche Tests, diese sind auf GitHub mit hochzuladen.)
|
||||||
|
|
||||||
### Bereich Vorgehen und Dokumentation
|
### Bereich Vorgehen und Dokumentation
|
||||||
|
|
||||||
- Ihr Code ist mit JavaDoc dokumentiert. (s.a. Hinweis unter "Anforderungen", Analyse durch Ihre Dozierenden)
|
- Ihr Code ist mit JavaDoc dokumentiert. (s.a. Hinweis unter "Anforderungen", Analyse durch Ihre Dozierenden)
|
||||||
- Alle Gruppenmitglieder haben in nennenswertem Umfang Code beigetragen und auf GitHub eingecheckt. (Check durch GitHub Log)
|
- Alle Gruppenmitglieder haben in nennenswertem Umfang Code beigetragen und auf GitHub eingecheckt. (Check durch GitHub
|
||||||
|
Log)
|
||||||
|
|
||||||
## Beispielcode zum Konsoleneingabe
|
## Beispielcode zum Konsoleneingabe
|
||||||
Die Eingabe von Text ist im BlueJ-Buch, Kapitel 6 erwähnt und in Kapitel 14.9. genauer beschrieben. Wenn Sie Probleme bei der Anwendung der Texteingabe haben, wenden Sie sich an Ihre Dozierenden. Die Anwendung der Scanner-Klasse sollte nach dem gegebenen Muster jedoch einfach gelingen.
|
|
||||||
|
Die Eingabe von Text ist im BlueJ-Buch, Kapitel 6 erwähnt und in Kapitel 14.9. genauer beschrieben. Wenn Sie Probleme
|
||||||
|
bei der Anwendung der Texteingabe haben, wenden Sie sich an Ihre Dozierenden. Die Anwendung der Scanner-Klasse sollte
|
||||||
|
nach dem gegebenen Muster jedoch einfach gelingen.
|
||||||
|
|
||||||
In der Grundfunktionalität sieht sie folgendermassen aus:
|
In der Grundfunktionalität sieht sie folgendermassen aus:
|
||||||
|
|
||||||
|
@ -115,4 +136,6 @@ public class InputReaderMod {
|
||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
**Quelle**: Anpassung von InputReader.java (englischsprachige Fassung der im Buch in Kap. 6 erwähnten Klasse EingabeLeser.java) aus dem Unterverzeichnis projects/chapter06/ tech-support-complete im Archiv https://bluej.org/objects-first/resources/projects.zip)
|
**Quelle**: Anpassung von InputReader.java (englischsprachige Fassung der im Buch in Kap. 6 erwähnten Klasse
|
||||||
|
EingabeLeser.java) aus dem Unterverzeichnis projects/chapter06/ tech-support-complete im
|
||||||
|
Archiv https://bluej.org/objects-first/resources/projects.zip)
|
||||||
|
|
|
@ -10,11 +10,11 @@ import java.util.Map;
|
||||||
*/
|
*/
|
||||||
public class Text {
|
public class Text {
|
||||||
|
|
||||||
|
private static final String dummyText = "The standard Lorem Ipsum passage, used since the 1500s \"Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.\" Section 1.10.32 of \"de Finibus Bonorum et Malorum\", written by Cicero in 45 BC \"Sed ut perspiciatis unde omnis iste natus error sit voluptatem accusantium doloremque laudantium, totam rem aperiam, eaque ipsa quae ab illo inventore veritatis et quasi architecto beatae vitae dicta sunt explicabo. Nemo enim ipsam voluptatem quia voluptas sit aspernatur aut odit aut fugit, sed quia consequuntur magni dolores eos qui ratione voluptatem sequi nesciunt. Neque porro quisquam est, qui dolorem ipsum quia dolor sit amet, consectetur, adipisci velit, sed quia non numquam eius modi tempora incidunt ut labore et dolore magnam aliquam quaerat voluptatem. Ut enim ad minima veniam, quis nostrum exercitationem ullam corporis suscipit laboriosam, nisi ut aliquid ex ea commodi consequatur? Quis autem vel eum iure reprehenderit qui in ea voluptate velit esse quam nihil molestiae consequatur, vel illum qui dolorem eum fugiat quo voluptas nulla pariatur?";
|
||||||
/**
|
/**
|
||||||
* The DataFields text and dummyText save the objects that are being used in this class.
|
* The DataFields text and dummyText save the objects that are being used in this class.
|
||||||
*/
|
*/
|
||||||
private final ArrayList<String> text = new ArrayList<>();
|
private final ArrayList<String> text = new ArrayList<>();
|
||||||
private static final String dummyText = "The standard Lorem Ipsum passage, used since the 1500s \"Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.\" Section 1.10.32 of \"de Finibus Bonorum et Malorum\", written by Cicero in 45 BC \"Sed ut perspiciatis unde omnis iste natus error sit voluptatem accusantium doloremque laudantium, totam rem aperiam, eaque ipsa quae ab illo inventore veritatis et quasi architecto beatae vitae dicta sunt explicabo. Nemo enim ipsam voluptatem quia voluptas sit aspernatur aut odit aut fugit, sed quia consequuntur magni dolores eos qui ratione voluptatem sequi nesciunt. Neque porro quisquam est, qui dolorem ipsum quia dolor sit amet, consectetur, adipisci velit, sed quia non numquam eius modi tempora incidunt ut labore et dolore magnam aliquam quaerat voluptatem. Ut enim ad minima veniam, quis nostrum exercitationem ullam corporis suscipit laboriosam, nisi ut aliquid ex ea commodi consequatur? Quis autem vel eum iure reprehenderit qui in ea voluptate velit esse quam nihil molestiae consequatur, vel illum qui dolorem eum fugiat quo voluptas nulla pariatur?";
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Method to check if a specific paragraph exists.
|
* Method to check if a specific paragraph exists.
|
||||||
|
@ -48,7 +48,7 @@ public class Text {
|
||||||
* @return returns true if the paragraph is added successfully.
|
* @return returns true if the paragraph is added successfully.
|
||||||
*/
|
*/
|
||||||
public boolean add(String text) {
|
public boolean add(String text) {
|
||||||
this.text.add(text.replaceAll("[^A-Za-z0-9 .,:?!\"'-]",""));
|
this.text.add(text.replaceAll("[^A-Za-z0-9 .,:?!\"'-]", ""));
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -105,7 +105,7 @@ public class Text {
|
||||||
* @return returns true if the paragraph is changed successfully.
|
* @return returns true if the paragraph is changed successfully.
|
||||||
*/
|
*/
|
||||||
public boolean replace(String oldChar, String newChar) {
|
public boolean replace(String oldChar, String newChar) {
|
||||||
if(paragraphExists(text.size())) {
|
if (paragraphExists(text.size())) {
|
||||||
text.set((text.size() - 1), text.get(text.size() - 1).replace(oldChar, newChar));
|
text.set((text.size() - 1), text.get(text.size() - 1).replace(oldChar, newChar));
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
@ -133,7 +133,7 @@ public class Text {
|
||||||
* @return True: if paragraph has been deleted.
|
* @return True: if paragraph has been deleted.
|
||||||
*/
|
*/
|
||||||
public boolean del() {
|
public boolean del() {
|
||||||
if(paragraphExists(text.size())){
|
if (paragraphExists(text.size())) {
|
||||||
text.remove(text.size() - 1);
|
text.remove(text.size() - 1);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
@ -148,7 +148,7 @@ public class Text {
|
||||||
* @return ArrayList<String>
|
* @return ArrayList<String>
|
||||||
*/
|
*/
|
||||||
public ArrayList<String> index() {
|
public ArrayList<String> index() {
|
||||||
HashMap<String,ArrayList<Integer>> wordbook = new HashMap<>();
|
HashMap<String, ArrayList<Integer>> wordbook = new HashMap<>();
|
||||||
createWordlist(wordbook);
|
createWordlist(wordbook);
|
||||||
String input;
|
String input;
|
||||||
ArrayList<String> output = new ArrayList<>();
|
ArrayList<String> output = new ArrayList<>();
|
||||||
|
@ -174,9 +174,8 @@ public class Text {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* This method counts all words in text and adds the count together with the paragraph where the word has been used to a Hashmap.
|
* This method counts all words in text and adds the count together with the paragraph where the word has been used to a Hashmap.
|
||||||
*
|
|
||||||
*/
|
*/
|
||||||
private void createWordlist(HashMap<String,ArrayList<Integer>> wordbook) {
|
private void createWordlist(HashMap<String, ArrayList<Integer>> wordbook) {
|
||||||
int counter;
|
int counter;
|
||||||
ArrayList<Integer> numbersList;
|
ArrayList<Integer> numbersList;
|
||||||
String firstLetter;
|
String firstLetter;
|
||||||
|
|
|
@ -32,7 +32,7 @@ public class TextLogic {
|
||||||
switch (command[0]) {
|
switch (command[0]) {
|
||||||
case "ADD":
|
case "ADD":
|
||||||
String inputText = "";
|
String inputText = "";
|
||||||
while(inputText.length() == 0) {
|
while (inputText.length() == 0) {
|
||||||
textOutput.userInfoOutput("Please enter your text: ");
|
textOutput.userInfoOutput("Please enter your text: ");
|
||||||
inputText = TextInput.getTextInput();
|
inputText = TextInput.getTextInput();
|
||||||
}
|
}
|
||||||
|
|
|
@ -17,10 +17,9 @@ public class TextOutput {
|
||||||
* @param text the ArrayList which is then formatted into the desired output.
|
* @param text the ArrayList which is then formatted into the desired output.
|
||||||
*/
|
*/
|
||||||
public void print(ArrayList<String> text) {
|
public void print(ArrayList<String> text) {
|
||||||
if(text.size() == 0) {
|
if (text.size() == 0) {
|
||||||
errorMissingText();
|
errorMissingText();
|
||||||
}
|
} else if (formatRaw) {
|
||||||
else if (formatRaw) {
|
|
||||||
printFormated(text);
|
printFormated(text);
|
||||||
} else {
|
} else {
|
||||||
toFormat(text);
|
toFormat(text);
|
||||||
|
@ -50,15 +49,15 @@ public class TextOutput {
|
||||||
String[] words = paragraph.split(" ");
|
String[] words = paragraph.split(" ");
|
||||||
int lastWordNumber = words.length;
|
int lastWordNumber = words.length;
|
||||||
int currentWordNumber = 0;
|
int currentWordNumber = 0;
|
||||||
for(String word : words) {
|
for (String word : words) {
|
||||||
currentWordNumber++;
|
currentWordNumber++;
|
||||||
if (word.length()>= columnWidth - currentLength && currentWordNumber != 1) {
|
if (word.length() >= columnWidth - currentLength && currentWordNumber != 1) {
|
||||||
System.out.println();
|
System.out.println();
|
||||||
currentLength = 0;
|
currentLength = 0;
|
||||||
}
|
}
|
||||||
System.out.print(word);
|
System.out.print(word);
|
||||||
|
|
||||||
if(!(currentWordNumber == lastWordNumber)) {
|
if (!(currentWordNumber == lastWordNumber)) {
|
||||||
System.out.print(" ");
|
System.out.print(" ");
|
||||||
currentLength = currentLength + word.length() + 1;
|
currentLength = currentLength + word.length() + 1;
|
||||||
} else {
|
} else {
|
||||||
|
@ -86,12 +85,11 @@ public class TextOutput {
|
||||||
* @param length the paragraph length when printing the text.
|
* @param length the paragraph length when printing the text.
|
||||||
*/
|
*/
|
||||||
public void formatFix(int length) {
|
public void formatFix(int length) {
|
||||||
if(length > 0) {
|
if (length > 0) {
|
||||||
formatRaw = false;
|
formatRaw = false;
|
||||||
columnWidth = length;
|
columnWidth = length;
|
||||||
userInfoOutput("Command was successful");
|
userInfoOutput("Command was successful");
|
||||||
}
|
} else {
|
||||||
else {
|
|
||||||
System.err.println("Minimum length has to be greater than 0");
|
System.err.println("Minimum length has to be greater than 0");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -111,10 +109,9 @@ public class TextOutput {
|
||||||
* @param index ArrayList with words and in which part they have
|
* @param index ArrayList with words and in which part they have
|
||||||
*/
|
*/
|
||||||
public void indexOutput(ArrayList<String> index) {
|
public void indexOutput(ArrayList<String> index) {
|
||||||
if(index.size() == 0) {
|
if (index.size() == 0) {
|
||||||
userInfoOutput("index empty");
|
userInfoOutput("index empty");
|
||||||
}
|
} else {
|
||||||
else {
|
|
||||||
for (String word : index) {
|
for (String word : index) {
|
||||||
System.out.println(word);
|
System.out.println(word);
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,7 +1,6 @@
|
||||||
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;
|
||||||
|
|
||||||
class TextOutputTest {
|
class TextOutputTest {
|
||||||
|
|
|
@ -1,6 +1,7 @@
|
||||||
import org.junit.jupiter.api.Assertions;
|
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;
|
||||||
|
|
||||||
|
|
||||||
|
@ -32,7 +33,6 @@ public class TextTest {
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
*
|
|
||||||
* Test Method del
|
* Test Method del
|
||||||
*/
|
*/
|
||||||
@Test
|
@Test
|
||||||
|
@ -77,8 +77,8 @@ public class TextTest {
|
||||||
txt.add("Word word etc. !!test zweite... Zeile");
|
txt.add("Word word etc. !!test zweite... Zeile");
|
||||||
txt.add("Lorem ipsum lorem ipsum TEST");
|
txt.add("Lorem ipsum lorem ipsum TEST");
|
||||||
stringListe = txt.index();
|
stringListe = txt.index();
|
||||||
Assertions.assertEquals("Word 1, 2",stringListe.get(0));
|
Assertions.assertEquals("Word 1, 2", stringListe.get(0));
|
||||||
Assertions.assertEquals("Test 1, 2, 3",stringListe.get(1));
|
Assertions.assertEquals("Test 1, 2, 3", stringListe.get(1));
|
||||||
//End of Test
|
//End of Test
|
||||||
|
|
||||||
setup();
|
setup();
|
||||||
|
@ -86,14 +86,14 @@ public class TextTest {
|
||||||
//Positiv Testcase Two
|
//Positiv Testcase Two
|
||||||
txt.add("Word word Word Test");
|
txt.add("Word word Word Test");
|
||||||
stringListe = txt.index();
|
stringListe = txt.index();
|
||||||
Assertions.assertEquals("Word 1",stringListe.get(0));
|
Assertions.assertEquals("Word 1", stringListe.get(0));
|
||||||
//End of Test
|
//End of Test
|
||||||
|
|
||||||
setup();
|
setup();
|
||||||
|
|
||||||
//Negativ Testcase One
|
//Negativ Testcase One
|
||||||
stringListe = txt.index();
|
stringListe = txt.index();
|
||||||
Assertions.assertEquals(0,stringListe.size());
|
Assertions.assertEquals(0, stringListe.size());
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
|
|
Loading…
Reference in New Issue