Javakurs/Übungsaufgaben/DDDText/Musterloesung: Unterschied zwischen den Versionen
Erscheinungsbild
Jörg F (Diskussion | Beiträge) K hat „Javakurs2009/DDDText/Musterloesung“ nach „Javakurs/Übungsaufgaben/DDDText/Musterloesung“ verschoben |
Musterlösung hinzugefügt |
||
| Zeile 1: | Zeile 1: | ||
== Lösung: DDDText.java == | |||
<pre> | |||
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(); | |||
} | |||
} | |||
} | |||
</pre> | |||
== Alternativer Lösungsvorschlag ohne Verwendung der Vorgabe == | |||
<pre> | <pre> | ||
/** | /** | ||
Aktuelle Version vom 9. März 2012, 11:54 Uhr
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("");
}
}
}