Sitzung: Jeden Freitag in der Vorlesungszeit ab 16 Uhr c. t. im MAR 0.005. In der vorlesungsfreien Zeit unregelmäßig (Jemensch da?). Macht mit!

Javakurs/Übungsaufgaben/Cowsay

Aufgabenstellung

Diese Aufgabe stellt eine etwas erweitere Version von HelloWorld dar. Als Vorbild dient das Unix-Programm Cowsay. Diesem Programm übergibt man einen Text und als Ergebnis erhält man eine kleines Bild (als ASCII-Art) auf der Konsole, welches den übergeben Text enthält. Dies könnte so aussehen wie unter Beispiel zu sehen.

1) Als ersten Schritt könnt ihr mit mehreren System.out.println("..."); erstmal ein wenig herumprobieren und versuchen eine ASCII Graphik, die ihr euch ausgedacht habt, auszugeben. Natürlich könnt ihr auch die aus dem Beispiel nehmen.

2) Als zweiten Schritt könnt ihr probieren, auch etwas Text mit in die Graphik einzubinden, wie in dem ersten Beispiel zu sehen. Fuer Mehrdenker: Beachtet, dass wie bei der orginal Cowsay/Cowthink die Laenge des Strings auch beruecksichtigt wird um den String mit "_" (oder anderen Zeichen) zu unter- bzw oberstreichen.

Beispiel

 _____________
< Java rocks! >
 -------------
       \   ^__^
        \  (oo)\_______
           (__)\       )\/\
               ||----w |
               ||     ||

Hinweise

Wenn ihr auf der Konsole ein Backslash "\" ausgeben wollt, dann müsst ihr dieses Zeichen, da es selbst ein sogenanntes Escapezeichen ist, mit einem Backslash "escapen". Der Code um ein Backslash auszugeben, sieht also so aus.

System.out.println("\\");

siehe auch: weitere Escape Sequenzen auf de.wikipedia.org

Tipps

Lesen von der Konsole

Wenn ihr beim Ausführen eures Programms in der Konsole ein Parameter (also ein Wort) mit übergebt, so findet ihr ihn an Position [0] im String-Array eurer main-Methode wieder.

Beispiel:

java cowsay rocks

-> arguments[0] enthält rocks.

Bei einem Satz muesst ihr diesen in Hochkomma angeben.

Beispiel:

java cowsay "Java Rocks"

-> arguments[0] enthaelt nun Java Rocks

Kommentare

Wenn du Anmerkungen zur Aufgabe hast oder Lob und Kritik loswerden möchtest, ist hier die richtige Stelle dafür. Klicke einfach ganz rechts auf "bearbeiten" und schreibe deinen Kommentar direkt ins Wiki. Keine Scheu, es geht nichts kaputt ;)

wie kann man die 2 "" zeichen einbauen?

Einfach escapen, also \" schreiben. --Robert Buchholz 22:50, 30. Mai. 2007 (CEST)

Dankeschön ;) Cowsay macht Spaaaaß :-D




Hey, haben es hingekriegt,dass die Kuh was sagt, wollen aber ,dass die Kuh keine Sprechblase hat,wenn man nichts eingibt,wie sollen wir das machen?

Haben schon mit if und else args[0] !== null probiert, klappt aber nicht, bei keiner Eingabe kommt die Fehlermeldung:

Exception in treahd "main" java.lang.ArrayIndexOutOfBoundsException: 0 ...




Sebastian Wjertzoch

Einfach auf Anzal der Elemente in args prüfen.

public static void main(String[] args){
	if(args.length > 0){
		printCow(args[0]);
	} else {
		printCow("My milk is empty!");
	}
}

Wenn kein Eintrag drin ist, wird einfach ein Text gegeben... Bestimmt nicht die eleganteste Lösung aber es läuft.