Javakurs/Übungsaufgaben/DDDText/Musterloesung
< Javakurs | Übungsaufgaben | DDDText
Lösung: DDDText.java
public class DDDText { public static final String[][] letters = { {" ___ ", " / \\ ", " / ^ \\ ", " / /_\\ \\ ", " / _____ \\ ", "/__/ \\__\\ ", " "}, {".______ ", "| _ \\ ", "| |_) | ", "| _ < ", "| |_) | ", "|______/ ", " "}, {" ______ ", " / |", "| ,----'", "| | ", "| `----.", " \\______|", " "}, {" _______ ", "| \\ ", "| .--. |", "| | | |", "| '--' |", "|_______/ ", " "}, {" _______ ", "| ____|", "| |__ ", "| __| ", "| |____ ", "|_______|", " "}, {" _______ ", "| ____|", "| |__ ", "| __| ", "| | ", "|__| ", " "}, {" _______ ", " / _____|", "| | __ ", "| | |_ | ", "| |__| | ", " \\______| ", " "}, {" __ __ ", "| | | | ", "| |__| | ", "| __ | ", "| | | | ", "|__| |__| ", " "}, {" __ ", "| | ", "| | ", "| | ", "| | ", "|__| ", " "}, {" __ ", " | | ", " | | ", ".--. | | ", "| `--' | ", " \\______/ ", " "}, {" __ ___ ", "| |/ / ", "| ' / ", "| < ", "| . \\ ", "|__|\\__\\ ", " "}, {" __ ", "| | ", "| | ", "| | ", "| `----.", "|_______|", " "}, {".___ ___. ", "| \\/ | ", "| \\ / | ", "| |\\/| | ", "| | | | ", "|__| |__| ", " "}, {".__ __. ", "| \\ | | ", "| \\| | ", "| . ` | ", "| |\\ | ", "|__| \\__| ", " "}, {" ______ ", " / __ \\ ", "| | | | ", "| | | | ", "| `--' | ", " \\______/ ", " "}, {".______ ", "| _ \\ ", "| |_) | ", "| ___/ ", "| | ", "| _| ", " "}, {" ______ ", " / __ \\ ", "| | | | ", "| | | | ", "| `--' '--. ", " \\_____\\_____\\", " "}, {".______ ", "| _ \\ ", "| |_) | ", "| / ", "| |\\ \\----.", "| _| `._____|", " "}, {" _______.", " / |", " | (----`", " \\ \\ ", ".----) | ", "|_______/ ", " "}, {".___________.", "| |", "`---| |----`", " | | ", " | | ", " |__| ", " "}, {" __ __ ", "| | | | ", "| | | | ", "| | | | ", "| `--' | ", " \\______/ ", " "}, {"____ ____ ", "\\ \\ / / ", " \\ \\/ / ", " \\ / ", " \\ / ", " \\__/ ", " "}, {"____ __ ____ ", "\\ \\ / \\ / / ", " \\ \\/ \\/ / ", " \\ / ", " \\ /\\ / ", " \\__/ \\__/ ", " "}, {"___ ___ ", "\\ \\ / / ", " \\ V / ", " > < ", " / . \\ ", "/__/ \\__\\ ", " "}, {"____ ____ ", "\\ \\ / / ", " \\ \\/ / ", " \\_ _/ ", " | | ", " |__| ", " "}, {" ________ ", "| / ", "`---/ / ", " / / ", " / /----.", " /________|"} }; public static void main(String[] args) { String input; if (args.length == 0) { System.out.println("Warnung: Keine Parameter übergeben!"); input = "Hello World"; } else { input = args[0]; } String inputLowerCase = input.toLowerCase(); //Variante 1: Ein Buchstabe pro Zeile for (int i = 0; i < inputLowerCase.length(); i++) { int index = inputLowerCase.charAt(i) - 'a'; if (index >= 0 && index <= 25) { for (int line = 0; line < letters[index].length; line++) { System.out.println(letters[index][line]); } } } //Variante 2: Alle Buchstaben in einer Zeile for (int line = 0; line < letters[0].length; line++) { for (int i = 0; i < inputLowerCase.length(); i++) { int index = inputLowerCase.charAt(i) - 'a'; if (index >= 0 && index <= 25) { System.out.print(letters[index][line] + " "); } if (inputLowerCase.charAt(i) == ' ') { System.out.print(" "); } } System.out.println(); } } }
Alternativer Lösungsvorschlag ohne Verwendung der Vorgabe
/** * This little java programm prints a given text in ascii-Art. * Start the programm with: * # java DDDText <Place you text here> * * e.g. * # java DDDText Java * * @author tkroenert * * * Warning: This programm is written on a little higher * programming level as you are on the first day learing * java. So you programm can be much simpler. * */ public class DDDText { public static void main(String[] arguments /*[0] is the message we want to print out */) { /* * This is for the case you do not give the programm a parameter */ if (arguments.length == 0) { System.out.println("Start the programm with:"); System.out.println("\t# java DDDText <Place you text here>\n"); System.out.println("e.g."); System.out.println("\t# java DDDText Java"); System.out.println(""); } /* * Here begins the formatted output of the 3D-Text. * * Test on your own how it works. Trial & error is * the best way. */ //Userfriendly case-ignoring trick arguments[0] = arguments[0].toLowerCase(); //take a character... for (int i = 0; i < arguments[0].length(); i++) { char nextChar = arguments[0].charAt(i); //...and have a look at it switch(nextChar) { case 'a': System.out.println(" ___ "); System.out.println(" / /\\ "); System.out.println(" / /::\\ "); System.out.println(" / /:/\\:\\ "); System.out.println(" / /:/~/::\\ "); System.out.println(" /__/:/ /:/\\:\\ "); System.out.println(" \\ \\:\\/:/__\\/"); System.out.println(" \\ \\::/ "); System.out.println(" \\ \\:\\ "); System.out.println(" \\ \\:\\ "); System.out.println(" \\__\\/ "); break; /* * case 'b': ... * case 'c': ... * case 'd': ... * etc. */ case 'j': System.out.println(" ___ "); System.out.println(" / /\\ "); System.out.println(" / /:/ "); System.out.println(" /__/::\\ "); System.out.println(" \\__\\/\\:\\ "); System.out.println(" \\ \\:\\ "); System.out.println(" \\__\\:\\ "); System.out.println(" / /:/ "); System.out.println(" /__/:/ "); System.out.println(" \\__\\/ "); break; case 'v': System.out.println(" ___ "); System.out.println(" /__/\\ "); System.out.println(" \\ \\:\\ "); System.out.println(" \\ \\:\\ "); System.out.println(" _ _ \\__\\:\\ "); System.out.println(" /__/\\ | |:| "); System.out.println(" \\ \\:\\| |:|"); System.out.println(" \\ \\:\\__|:| "); System.out.println(" \\__\\::::/ "); System.out.println(" ~~~~ "); break; default: System.out.println(nextChar); break; //this would never happen } //some ascii-cosmetics System.out.println(""); } } }