Lernpfad:Würfelspiel in Java/Mit Strings arbeiten: Unterschied zwischen den Versionen

keine Bearbeitungszusammenfassung
Keine Bearbeitungszusammenfassung
Keine Bearbeitungszusammenfassung
Zeile 13: Zeile 13:
einText.isEmpty()        // false
einText.isEmpty()        // false
</syntaxhighlight>
</syntaxhighlight>


{{Hint:Start}}
{{Hint:Start}}
Zeile 19: Zeile 18:
zum Umgang mit Integern.
zum Umgang mit Integern.
{{Hint:End}}
{{Hint:End}}
== Strings formatieren ==
Zeichenketten müssen in Programmen sehr häufig zur Laufzeit des Programms aus variablen Inhalten zusammengesetzt werden. Am Ende des Würfelspiels könnte man zum Beispiel die Nachricht ''"Spieler 1 hat gewonnen"'' bzw. ''"Spieler 2 hat gewonnen"'' anzeigen lassen. Die Nummer des Spielers ist hier variabel, je nachdem, welcher Spieler gewonnen hat. Noch schöner wäre es, wenn zusätzlich der Name des Spielers angezeigt würde.
Um mit solchen Situationen umzugehen haben sich Zeichenketten mit besonderen Formatierungszeichen und die [https://docs.oracle.com/javase/8/docs/api/java/lang/String.html#format-java.lang.String-java.lang.Object...- format-Methode] etabliert.
Für obige Situation könnte der String wie folgt aussehen:
<syntaxhighlight lang="java" line="1">
String botschaft = "Spieler %d (%s) hat gewonnen";
</syntaxhighlight>
Die Formatierungszeichen beginnen jeweils mit einem <code>%</code>. Das Zeichen <code>%d</code> steht für '''''d'''ecimal number'', das Zeichen <code>%s</code> für '''''S'''tring''. An Stelle des ersten Platzhalters soll also eine Dezimalzahl, an Stelle des Zweiten eine Zeichenkette eingesetzt werden.
Mittels <code>format</code> kann man nun beliebige Werte einsetzen:
<syntaxhighlight lang="java" line="1">
String.format(botschaft, 1, "Hannes"); // Spieler 1 (Hannes) hat gewonnen
String.format(botschaft, 2, "Johanna"); // Spieler 2 (Johanna) hat gewonnen
String.format(botschaft, 300, "Susanna"); // Spieler 300 (Susanna) hat gewonnen
</syntaxhighlight>
8.581

Bearbeitungen