added a new prototype for a better toFormat method

This commit is contained in:
Leonardo Brandenberger 2021-11-09 16:56:20 +01:00
parent 4c304e06e3
commit 300d41c53d
1 changed files with 57 additions and 5 deletions

View File

@ -1,5 +1,4 @@
import java.util.ArrayList;
import java.util.Iterator;
public class TextOutput {
@ -9,13 +8,13 @@ public class TextOutput {
/**
* Method which checks in which way the paragraphs should be displayed. And then
*
* @param text the ArrayList which is then formated into the desired output.
* @param text the ArrayList which is then formatted into the desired output.
*/
public void print(ArrayList<String> text) {
if (formatRaw) {
printFormated(text);
} else {
printUnformatedV2(text);
toFormat4(text);
}
}
@ -30,6 +29,25 @@ public class TextOutput {
}
}
private void toFormat2(ArrayList<String> text) {
for (String para : text) {
String[] words = para.split(" ");
String output = "";
for (String word : words) {
if ((output.length() + word.length()) < columnWidth) {
output += "word ";
} else {
if (word.length() <= columnWidth) {
System.out.println(output);
output = "";
} else {
System.out.println(word.substring(0, columnWidth) );//+ "-");
output = word.substring(columnWidth);
}
}
}
}
}
/**
* Method to print out the paragraphs with the length taken from columnWidth and adding leftover words to the next
@ -37,7 +55,7 @@ public class TextOutput {
*
* @param text the ArrayList which is used for the output.
*/
private void printUnformated(ArrayList<String> text) {
private void toFormat(ArrayList<String> text) {
for (String paragraph : text) {
String[] words = paragraph.split(" ");
int currentLength = 0;
@ -74,7 +92,41 @@ public class TextOutput {
System.out.println(); //added
}
}
private void printUnformatedV2(ArrayList<String> text) {
private void toFormat4(ArrayList<String> text) {
int currentLength = 0;
for (String paragraph : text) {
String[] words = paragraph.split(" ");
int lastwordNumber = words.length;
int currentWordNumber = 0;
for(String word : words) {
currentWordNumber++;
if (word.length()<= columnWidth - currentLength) {
System.out.print(word);
if (!(lastwordNumber == currentWordNumber)) {
System.out.print(" ");
currentLength = currentLength + word.length() + 1;
}
else {
System.out.println();
}
}
else {
System.out.println();
System.out.print(word);
if(currentWordNumber == lastwordNumber) {
//System.out.println();
}
else {
System.out.print(" ");
currentLength = word.length();
}
}
}
}
}
private void toFormat3(ArrayList<String> text) {
for(String paragraph : text) {
if (paragraph.length() <= columnWidth) {
System.out.println(paragraph);