Wie ist die Ausgabe?
System.out.println(1+1+”"+1+1);
| Antwort/ answer | |
|---|---|
Wie ist die Ausgabe?
System.out.println(1+1+”"+1+1);
| Antwort/ answer | |
|---|---|
Was ist der Output des folgenden Codes?
String a = new String(“Test”);
StringBuffer b = new StringBuffer(“Test”);
StringBuffer c = new StringBuffer(“Test”);
System.out.println(a.equals(b));
System.out.println(b==c);
System.out.println(b.equals(c));
| Antwort/ answer | |
|---|---|
Der Aufruf erfolgt mit Java Angestellter 123 456. Was muss eingefügt werden, um PersNr den Wert 456 zuzuweisen?
public class Angestellter {
String Persnr;
static public void main(String[] Args){
/* insert Code here */
}
}
| Antwort/ answer | |
|---|---|
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.
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
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)
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 | |
|---|---|
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.
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 :endzeigt 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.
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