it-swarm.com.de

Definiert Java Konstanten für Zeichen wie SPACE?

Enthält Java Konstanten für einzelne Zeichen wie LEERZEICHEN ?

Wenn Sie Zeichenfolgen bearbeiten, ist es hilfreich, Namen aus Unicode zu übernehmen.

Ich will das:

String musician = "Lisa" + Character.SPACE + "Coleman" ;

…lieber als das:

String musician = "Lisa" + " " + "Coleman" ;

(Nicht zu verwechseln mit der Java.lang.Character Klasse)

Wenn nichts mit Java gebündelt, Alternativen?

8
Basil Bourque

Es gibt keine solche Konstante, und das hat gute Gründe, IMO.

Warum in Ihrem Beispiel überhaupt eine Konstante verwenden?

String musician = "Lisa" + Character.SPACE + "Coleman" ;

ist weniger lesbar als

String musician = "Lisa Coleman";

oder sogar als

String musician = "Lisa" + ' ' + "Coleman";

Ich denke also, es ist nicht aus Gründen der Lesbarkeit.

Ich vermute also, dass Sie eine Konstante wollen, um zu vermeiden, dass Sie sich in mehreren Teilen des Codes wiederholen. Die Verwendung von Character.SPACE anstelle von ' ' überall führt jedoch nicht zu weniger Wiederholungen. Nur zu ausführlicherem und weniger lesbarem Code.

Ich vermute also, dass Sie in der Lage sein möchten, den konstanten Wert an einer Stelle zu ändern und ihn überall dort ändern zu lassen, wo er verwendet wird. Wenn Sie jedoch eine integrierte Character.SPACE-Konstante verwenden, können Sie dieses Ziel nicht erreichen. Sie würden immer noch Ihre eigene Konstante benötigen, und der Name sollte nicht so lauten, wie der Wert lautet, sondern wie der Wert lautet für :

private static final char FIRST_NAME_LAST_NAME_SEPARATOR = ' ';

Es gibt einen guten Grund, diese Konstante zu verwenden: Wenn Sie später eine Registerkarte anstelle eines Leerzeichens verwenden, können Sie den Wert der Konstante ändern und den gesamten Code neu kompilieren.

10
JB Nizet

Es gibt einige in Apache Commons

org.Apache.commons.lang3.StringUtils.SPACE

Mehr

4

Java hat eine Liste von Zeichenkonstanten, die verwendet werden, um "untypisierbare" Zeichen wie ein Backspace (dargestellt durch\r) zu ersetzen. Die vollständige Liste finden Sie unter https://docstore.mik.ua/orelly/Java-ent/jenut/ch10_05.htm Hier jedoch einige Beispiele:

\\      Backslash
\r      Carriage Return
\"      Double Quote (same for single Quote)
\n      Newline

Du hast die Idee. Hoffe, das ist, wonach Sie gesucht haben, da Sie in Ihrem Titel Zeichenkonstanten erwähnt haben.

Bearbeiten: Wenn Sie Zeichenkonstanten als Zeichen verwenden, werden diese in einfache Anführungszeichen und nicht in doppelte Anführungszeichen gesetzt. Obwohl sie zwei (oder mehr) Zeichen lang sind, bezeichnen sie eher ein einzelnes Zeichen oder eine einzelne Binärziffer als eine Zeichenfolge.

Hinweis: Wenn Sie versuchen, das Eingabezeichen in der Funktion Java.awt.event.KeyListener keyTyped zu vergleichen, sollte die Zeichenkonstante \n user und nicht die Zeichenkonstante \r sein.

1
Samuel Newport