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: Unterschied zwischen den Versionen

(Kommentare)
(Kommentare)
Zeile 57: Zeile 57:
 
Cowsay macht Spaaaaß :-D
 
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?
 
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?
Zeile 65: Zeile 67:
 
Exception in treahd "main" java.lang.ArrayIndexOutOfBoundsException: 0 ...
 
Exception in treahd "main" java.lang.ArrayIndexOutOfBoundsException: 0 ...
  
---------
+
 
 +
----
 +
 
  
 
Sebastian Wjertzoch
 
Sebastian Wjertzoch
  
 
Einfach auf Anzal der Elemente in args prüfen.
 
Einfach auf Anzal der Elemente in args prüfen.
 +
 +
-- CODE --
  
 
public static void main(String[] args){
 
public static void main(String[] args){
  
 
if(args.length > 0){
 
if(args.length > 0){
 +
 
printCow(args[0]);
 
printCow(args[0]);
 +
 
}else {
 
}else {
 +
 
printCow("My milk is empty!");
 
printCow("My milk is empty!");
 +
 
}
 
}
 +
 
} //main-end
 
} //main-end
 +
 +
-- CODE --
  
 
Wenn kein Eintrag drin ist, wird einfach ein Text gegeben...
 
Wenn kein Eintrag drin ist, wird einfach ein Text gegeben...

Version vom 24. März 2010, 22:01 Uhr

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. Cowsay könnt ihr hier ausprobieren: http://user.cs.tu-berlin.de/~mutax/cgi-bin/cowsay.cgi

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.

-- CODE --

public static void main(String[] args){

if(args.length > 0){

printCow(args[0]);

}else {

printCow("My milk is empty!");

}

} //main-end

-- CODE --

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