Zeichen: Das char-Keyword

Mit dem Laden des Videos akzeptierst du die Datenschutzerklärung von YouTube. Wenn du die Menge an Daten reduzieren möchtest, die YouTube von dir sammelt, solltest du dich vorher aus deinem YouTube-Account ausloggen, das Speichern von Cookies für das Google-Ads-Programm deaktivieren und/oder Cookies im Browser blockieren.
YouTube immer automatisch ladenInhaltsverzeichnis
Als Text lesen
Du kennst bereits die Klasse String
. Mit String
s lassen sich Zeichenketten speichern. Aber wie werden eigentlich die Zeichen in einem String
gepeichert? Dafür gibt es das char
-Keyword.
char
Steht für "Character" (engl. für "Zeichen") und ist ebenso wie int
, boolean
, oder float
ein Basistyp. char
s lassen sich folgendermaßen verwenden:
Achte dabei darauf, dass ein char
im Gegensatz zu einem String
immer von einzelnen Gänsefüßchen ('
) umgeben ist.
Intern werden char
s ähnlich wie int
als Ganzzahlen gespeichert. Daher können sie auch mit int
verrechnet werden:
Die Reihenfolge der Zeichen wird in einer Encoding Table definiert, die angibt, welches Zeichen welcher Ganzzahl entspricht. Wenn du wissen möchtest, welchen Code ein bestimmtes char
hat, kannst du nach "ASCII table" im Internet suchen.
Vorsicht bei der Konkatenation von char
s! Die Zeile
produziert nicht ab
auf der Konsole, sondern 195
. Hier werden die Zeichen nämlich nicht zu einem String
konkateniert, sondern der Ganzzahlwert von 'a'
(97) mit dem Ganzzahlwert von 'b'
(98) addiert und zu einem int
umgewandelt.
Wenn du char
s konkatenieren möchtest, musst du das linke zuerst zu einem String
umwandeln, beispielsweise so:
In diesem Fall wird der String
von links nach rechts mit den char
s zusammengefügt.
Übersicht Bisherige Basistypen
Basistyp | Art | Beispiele |
---|---|---|
boolean |
Wahrheitswert | false , true |
int |
Ganzzahl | -10 , 0 , 7 , 42 , 9999 |
char |
Zeichen | 'A' , 'a' , '?' , '#' , '"' |
double |
Fließkommazahl | -1.125 , 0.0 , 3.14159 , Double.NaN , Double.NEGATIVE_INFINITY |
In dieser Aufgabe ist eine Klasse CharacterTable
gegeben, die in ihrem Attribut characters
alle Zeichen mit einem Code zwischen 0 und einem festgelegten maximum speichert.
a) Implementiere den Konstruktor, der das characters
Array mit genau so vielen Plätzen initialisiert, wie es Zeichen mit einem Code zwischen 0
(inklusiv) und maximum
(exklusiv) gibt. Die Werte dürfen vorerst alle den char
Standardwert behalten.
b) Implementiere die Methode init()
, die das characters
Array mit Zeichen befüllt. Jeder Eintrag soll genau das Zeichen enthalten, dessen Code dem Index im Array entspricht.
c) Implementiere zuletzt die Methode printRange()
, die alle Zeichen vom Index from
(inklusiv) bis zum index to
(exklusiv) auf der Konsole ausgibt. Dabei soll der Index vorangestellt werden, sodass eine Ausgabe so aussehen könnte:
65: A 66: B 67: C 68: D 69: E 70: F

Mit dem Laden des Online Editors akzeptierst du die Datenschutzerklärung von JDoodle, einem Produkt der Nutpan pty Ltd (Australien). JDoodle verwendet die Tools reCAPTCHA und Google Analytics, wodurch Daten an Google übertragen werden können. Ich habe leider keinen Einfluss auf diesen Prozess. Du kannst Google Analytics über ein Browserplugin deaktivieren.
Online Editor immer automatisch ladenDu siehst, dass die alphabetische Sortierung in der ASCII Tabelle beibehalten wurde. Wenn du mit dem Ausgabeintervall etwas herumspielst, kannst du dir auch anzeigen lassen, welche Sonderzeichen welchem Code entsprechen. Einige dieser Zeichen sind jedoch nicht anzeigbare Steuerzeichen, die durch ein Platzhalter-Zeichen auf der Konsole ausgegeben werden.
Häufige Fehlerquellen
- Array zu klein:
characters
soll genaumaximum
Einträge haben - In
init()
int
als Laufvariable verwendet. Verwendechar
, um mit Zeichen zu hantieren to
als inklusiven Index verwendet: Es sollen beiprintRange()
nur Zahlen bisto - 1
ausgegeben werden