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 28

Was ist der Output des folgenden Codes?

Pattern p = Pattern.compile(“\\s”);
Matcher m = p.matcher(“Dies ist eine Übung”);
while (m.find())
System.out.println(m.start());

Antwort/ answer
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 26

Wie ist die Reihenfolge der De-Serialisierung?

Integer a = 10;
Angestellter b = new Angestellter();
String c = “Test”;
long d = 12;

try {

FileOutputStream OutputStream_file = new FileOutputStream(“OutputDatei.ser”);
ObjectOutputStream OutputStream_object = new ObjectOutputStream(OutputStream_file);
OutputStream_object.writeObject(b);
OutputStream_object.writeObject(d);
OutputStream_object.writeObject(a);
OutputStream_object.writeObject(c);
OutputStream_object.close();

}
catch (IOException e){ e.printStackTrace(); }

Antwort/ answer
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 24

Wie ist der Output des folgenden Codes?

Pattern p = Pattern.compile(“\\s”);
Matcher m = p.matcher(“ac1 b2cd ef3gh “);
while (m.find())
System.out.println(m.start());

Antwort/ answer
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 22

Ändere den Code

DateFormat d = DateFormat.getDateInstance(DateFormat.SHORT);
d.setLocale(“EN”,”UK”);
Calendar c = new GregorianCalendar(1978,5,18);
System.out.println(d.format(c.getTime()));

so ab, dass er erfolgreich compliert und in englischer Schreibweise das heutige Datum  (6/20/11) ausgegeben wird.

Antwort/ answer

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 20

Ändere das letzte Beispiel mit möglichst wenig Aufwand so ab, dass keine Exception geworfen wird:

class Angestellter{

public static boolean isEmpty(String a) { return (a == null | a.length() == 0); }

public static void main(String args[]) {

if (isEmpty(null)) {

System.out.print(“empty “);

}

else {

System.out.print(“not_empty “);

}

}

Antwort/ answer
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