Jul 03

Jetzt müssten wir alle für das SCJP erforderlichen Definitionen für Ausgabe-Formatierungen durchgenommen haben, da fehlt uns noch die Übersicht der Reihenfolge.

%<optional:$><optional:+-0,(><optional:Platzhalter><Indikator, z.B. b,s, i,c,f>

Es muss also auf jeden Fall % und ein Indikator angegeben werden, z.B. %s.

Alle anderen Format-Möglichkeiten sind optional.

Tagged with:
Jul 01

Mit ‘,’ kann man die grundsätzliche Formatierung (‘,’ statt ‘.’  < compilerabhängig> und 1.000er-Trennzeichen) ändern:

System.out.printf(“%f”, 1234.12345678); // Definition ohne Komma      System.out.printf(“\n%,f”, 1234.12345678); // Definition mit Komma

Die Ausgabe ist demnach:

1234,123457
1.234,123457

Tagged with:
Jun 29

die MethodenSystem.out.printf bzw System.out.format bieten auch die Möglichkeit, negative Zahlen mit ‘(‘ in Klammern zu setzen, ‘+’ für ein Vorzeichen zieht aber im Gegenzug dazu nicht mehr:

System.out.printf(“%(d”, 100);
System.out.printf(“\n%(d”, +100);
System.out.printf(“\n%(d”, -100);
System.out.printf(“\n%(+d”, -100);

Die Ausgabe ist nun:

100
100
(100)
(100)

Tagged with:
Jun 27

Während ein negatives Vorzeichen immer mit ausgegeben wird, wird ein positives Vorzeichen nur ausgeben, wenn ‘+’ hinzugefügt wurde:

System.out.printf(“%d”, +100); // Ausgabe ohne Vorzeichen, ‘+’ im Zusammenhang mit dem Argument spielt keine Rolle
System.out.printf(“\n%d”, -100); // Ausgabe mit Vorzeichen, da ‘-’ im Zusammenhang mit dem Argument im Gegensatz zu ‘+’ eine Rolle spielt
System.out.printf(“\n%+d”, 100); // Ausgabe mit ‘+’-Vorzeichen
System.out.printf(“\n+%d”, +100); // Ausgabe mit ‘+’-Vorzeichen, das ‘+’Zeichen des Argumentes spielt auch hier keine Rolle
System.out.printf(“\n%+d”, -100); // Ausgabe mit ‘-’ – Vorzeichen, das ‘+’Zeichen bei der Formatierung wird ignoriert.

Die Ausgabe ist

100
-100
+100
+100
-100

Wichtig ist, zu wissen, dass das ‘+’-Zeichen nur im Zusammenhang mit ‘+’ in der Formatierung erscheint, das ‘-’ Zeichen immer, unabhängig davon, was in der Formatierung angegeben wurde.

Tagged with:
Jun 25

Es ist möglich, einen Platzhalter linksbündig zu plazieren. Hierfür wird ‘-’ eingesetzt:

System.out.printf(“\n%-12d”, 100);

Die Ausgabe ist

100

Dies mag auf den ersten Blick verwirrdend sein. Etwas klarer wird es hoffentlich, wenn wir beide Ausgaben etwas verändert gegenüber stellen:

System.out.printf(“\nstart:%12d:end”,100); // Platzreservierung rechtsbündig
System.out.printf(“\nstart:%-12d:end”,100); // Platzreservierung linksbündig.

Die Ausgabe

start:         100:end
start:100         :end
zeigt deutlich, dass einmal der Platz vorne und einmal der Platz hinten reserviert wird. Die Zahlen werden also entweder rechts- oder linksbündig ausgegeben, wobei rechtsbündig der default-Wert ist.
Tagged with:
Jun 23

Heute geht es um Platzhalter.

Erst einmal zum Vergleich die Definition und Ausgabe ohne Platzhalter:

System.out.printf(“%d”, 100);
System.out.printf(“\n%f”, 100.1);

Die Ausgabe ist:

100
100,100000

Das ‘\n’ zum Zeilenumbruch dient dürfte bekannt sein :)

Nun wollen wir uns die Platzhalter mal genauer anschauen:

System.out.printf(“\n%12d”, 100); // Platzreservierung für 12 Zeichen eines int-Wertes
System.out.printf(“\n%12.2f”,100.1); // Platzreservierung für insgesamt 12 Zeichen (2 Zeichen hinter dem Komma, 1 Zeichen fürs Komma und 9 Zeichen for dem Komma)
System.out.printf(“\n%012.2f”,100.1); // Auffüllen mit 0 für unbenutzte Stellen vor dem Komma

Die veränderte Ausgabe ist nun:

         100
      100,10
000000100,10

Wichtig ist in diesem Zusammenhang auch, das zu kleine Platzhalter vor dem Komma automatisch erweitert werden:

System.out.printf(“\n%1.2f”, 1234.12345678);

führt deswegen zu einer Ausgabe von 1234.12

Tagged with:
Jun 21

Heute möchte ich ‘$’ vorstellen. Mit diesem Zeichen kann die Ausgabereihenfolge geregelt werden:

System.out.printf(“%2$d wird als erstes, %1$d wird als zweites ausgegeben”,100, 200);

Der eine oder andere mag es sich schon denken, mit ‘$’ in Zusammenhang mit der Position des Argumentes kann die Reihenfolge abgeändert werden. In diesem Falle wird erst das 2.Argument und dann das 1. Argument gezogen. Bitte hier beachten, dass es nicht wie bei Arrays ein Argument der Position 0 gibt.

Die Ausgabe ist demnach

200 wird als erstes, 100 wird als zweites ausgegeben

Tagged with:
Jun 19

Mit System.out.printf() bzw System.out.format() können Ausgaben formatiert werden. Da in der Benutzung dieser Methoden keine Unterschiede sind habe ich mich der Einfachheit halber in den Beispielen für System.out.printf() entschieden. Dies kann aber jederzeit mit System.out.format() ersetzt werden.

Fangen wir heute mal mit den Grundlagen an:

Die Syntax lautet

System.out.printf(“zu formatierender String”, Argument(e));

Damit der Comiler weiß, ob ein Argument in einen String eingebaut werden soll, wird das ‘%’-Zeichen und ein Indikator, um welchen Typ es sich handelt eingebaut:

System.out.printf(“Dies ist %d Beispiel”, 1);

d steht für einen int-Wert. Äquivalent ist die Codierung von

int i = 1;
System.out.printf(“Dies ist %d Beispiel”, 1);

Die Ausgabe ist gleich:

Dies ist 1 Beispiel

Weitere Indikatoren sind

  • b – boolean
  • c – char
  • f – float
  • s – string
Tagged with:
preload preload preload
http://www.wikio.de Blog Top Liste - by TopBlogs.de Blogverzeichnis - Blog Verzeichnis bloggerei.de Bloggeramt.de Software
Webbhotell Top Blogs