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.Iterator;
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
public class TextOutput {
 | 
			
		||||
    private boolean formatRaw;
 | 
			
		||||
    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) {
 | 
			
		||||
        if (formatRaw) {
 | 
			
		||||
            printFormated(text);
 | 
			
		||||
        } 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) {
 | 
			
		||||
        for (int counter = 0; counter < text.size(); 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) {
 | 
			
		||||
        for (String paragraph : text) {
 | 
			
		||||
            String[] words = paragraph.split(" ");
 | 
			
		||||
| 
						 | 
				
			
			@ -29,7 +47,6 @@ public class TextOutput {
 | 
			
		|||
                    int letterLenght = letters.length;
 | 
			
		||||
                    int lettersPrinted = 0;
 | 
			
		||||
                    do {
 | 
			
		||||
                        //System.out.println();
 | 
			
		||||
                        currentLength = 0;
 | 
			
		||||
                        for (int i = 0; i < columnWidth; i++) {
 | 
			
		||||
                            if (letterLenght > 0) {
 | 
			
		||||
| 
						 | 
				
			
			@ -57,20 +74,82 @@ public class TextOutput {
 | 
			
		|||
            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() {
 | 
			
		||||
        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) {
 | 
			
		||||
        formatRaw = false;
 | 
			
		||||
        columnWidth = length;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * Method to give out the Error "Invalid String".
 | 
			
		||||
     */
 | 
			
		||||
    public void errorInvalidString() {
 | 
			
		||||
        System.err.println("Invalid String");
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * Method to give out the Error "Invalid Command".
 | 
			
		||||
     */
 | 
			
		||||
    public void errorInvalidCommand() {
 | 
			
		||||
        System.err.println("Invalid Command");
 | 
			
		||||
    }
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -15,8 +15,8 @@ class TextOutputTest {
 | 
			
		|||
        text = new ArrayList<>();
 | 
			
		||||
        text.add("123456789");
 | 
			
		||||
        text.add("1234");
 | 
			
		||||
        text.add("12 12 12");
 | 
			
		||||
        text.add("     ");
 | 
			
		||||
        text.add("12 12 12 12 12 12");
 | 
			
		||||
        text.add("                                  ");
 | 
			
		||||
        text.add("1eeeeeee8597389751");
 | 
			
		||||
        text.add("TextTextTextTextTextTextTextTextTextTextTextTextTextText TextTextTextTextTextTextTextTextTextTextTextText TextTextText");
 | 
			
		||||
    }
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue