added improved Unformated class prototype
This commit is contained in:
parent
6e921233df
commit
4c304e06e3
|
@ -1,17 +1,29 @@
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
|
import java.util.Iterator;
|
||||||
|
|
||||||
|
|
||||||
public class TextOutput {
|
public class TextOutput {
|
||||||
private boolean formatRaw;
|
private boolean formatRaw;
|
||||||
private int columnWidth = 10;
|
private int columnWidth = 10;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 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.
|
||||||
|
*/
|
||||||
public void print(ArrayList<String> text) {
|
public void print(ArrayList<String> text) {
|
||||||
if (formatRaw) {
|
if (formatRaw) {
|
||||||
printFormated(text);
|
printFormated(text);
|
||||||
} else {
|
} else {
|
||||||
printUnformated(text);
|
printUnformatedV2(text);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Method to print out the paragraphs in numerical order and with the whole paragraph as its length.
|
||||||
|
*
|
||||||
|
* @param text the ArrayList which is used for the output
|
||||||
|
*/
|
||||||
private void printFormated(ArrayList<String> text) {
|
private void printFormated(ArrayList<String> text) {
|
||||||
for (int counter = 0; counter < text.size(); counter++) {
|
for (int counter = 0; counter < text.size(); counter++) {
|
||||||
System.out.println("<" + (counter + 1) + ">: <" + text.get(counter) + ">");
|
System.out.println("<" + (counter + 1) + ">: <" + text.get(counter) + ">");
|
||||||
|
@ -19,6 +31,12 @@ public class TextOutput {
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Method to print out the paragraphs with the length taken from columnWidth and adding leftover words to the next
|
||||||
|
* paragraph.
|
||||||
|
*
|
||||||
|
* @param text the ArrayList which is used for the output.
|
||||||
|
*/
|
||||||
private void printUnformated(ArrayList<String> text) {
|
private void printUnformated(ArrayList<String> text) {
|
||||||
for (String paragraph : text) {
|
for (String paragraph : text) {
|
||||||
String[] words = paragraph.split(" ");
|
String[] words = paragraph.split(" ");
|
||||||
|
@ -29,7 +47,6 @@ public class TextOutput {
|
||||||
int letterLenght = letters.length;
|
int letterLenght = letters.length;
|
||||||
int lettersPrinted = 0;
|
int lettersPrinted = 0;
|
||||||
do {
|
do {
|
||||||
//System.out.println();
|
|
||||||
currentLength = 0;
|
currentLength = 0;
|
||||||
for (int i = 0; i < columnWidth; i++) {
|
for (int i = 0; i < columnWidth; i++) {
|
||||||
if (letterLenght > 0) {
|
if (letterLenght > 0) {
|
||||||
|
@ -57,20 +74,82 @@ public class TextOutput {
|
||||||
System.out.println(); //added
|
System.out.println(); //added
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
private void printUnformatedV2(ArrayList<String> text) {
|
||||||
|
for(String paragraph : text) {
|
||||||
|
if (paragraph.length() <= columnWidth) {
|
||||||
|
System.out.println(paragraph);
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
String[] word = paragraph.split(" ");
|
||||||
|
int currentLineLength = 0;
|
||||||
|
for(String eachword : word) {
|
||||||
|
if (eachword.length() > columnWidth) {
|
||||||
|
String remainingText = eachword;
|
||||||
|
do {
|
||||||
|
if (remainingText.length() < columnWidth) {
|
||||||
|
System.out.println(remainingText);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
System.out.println(remainingText.substring(0, columnWidth));
|
||||||
|
remainingText = remainingText.substring((columnWidth));
|
||||||
|
|
||||||
|
} while (!(remainingText.length() == 0));
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
if (currentLineLength == 0) {
|
||||||
|
System.out.println();
|
||||||
|
}
|
||||||
|
if (columnWidth > eachword.length()) {
|
||||||
|
System.out.print(eachword);
|
||||||
|
if (!(currentLineLength == columnWidth)) {
|
||||||
|
System.out.print(" ");
|
||||||
|
}
|
||||||
|
currentLineLength = currentLineLength + eachword.length();
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
System.out.println(eachword);
|
||||||
|
currentLineLength = eachword.length();
|
||||||
|
if (!(currentLineLength == columnWidth)) {
|
||||||
|
System.out.print(" ");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
/**
|
||||||
|
* Method which sets the Variable formatRaw to true.
|
||||||
|
*/
|
||||||
public void formatRaw() {
|
public void formatRaw() {
|
||||||
formatRaw = true;
|
formatRaw = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Method to set the formatRaw to false and also set the length of the desired paragraph length in order to limit
|
||||||
|
* the paragraph length when printing the text.
|
||||||
|
*
|
||||||
|
* @param length the maximum length of each paragraph that is allowed to be displayed when printing the text.
|
||||||
|
*/
|
||||||
public void formatFix(int length) {
|
public void formatFix(int length) {
|
||||||
formatRaw = false;
|
formatRaw = false;
|
||||||
columnWidth = length;
|
columnWidth = length;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Method to give out the Error "Invalid String".
|
||||||
|
*/
|
||||||
public void errorInvalidString() {
|
public void errorInvalidString() {
|
||||||
System.err.println("Invalid String");
|
System.err.println("Invalid String");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Method to give out the Error "Invalid Command".
|
||||||
|
*/
|
||||||
public void errorInvalidCommand() {
|
public void errorInvalidCommand() {
|
||||||
System.err.println("Invalid Command");
|
System.err.println("Invalid Command");
|
||||||
}
|
}
|
||||||
|
|
|
@ -15,8 +15,8 @@ class TextOutputTest {
|
||||||
text = new ArrayList<>();
|
text = new ArrayList<>();
|
||||||
text.add("123456789");
|
text.add("123456789");
|
||||||
text.add("1234");
|
text.add("1234");
|
||||||
text.add("12 12 12");
|
text.add("12 12 12 12 12 12");
|
||||||
text.add(" ");
|
text.add(" ");
|
||||||
text.add("1eeeeeee8597389751");
|
text.add("1eeeeeee8597389751");
|
||||||
text.add("TextTextTextTextTextTextTextTextTextTextTextTextTextText TextTextTextTextTextTextTextTextTextTextTextText TextTextText");
|
text.add("TextTextTextTextTextTextTextTextTextTextTextTextTextText TextTextTextTextTextTextTextTextTextTextTextText TextTextText");
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue