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 Strings 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. chars 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 chars ä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 chars! 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 chars 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 chars 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:
characterssoll genaumaximumEinträge haben - In
init()intals Laufvariable verwendet. Verwendechar, um mit Zeichen zu hantieren toals inklusiven Index verwendet: Es sollen beiprintRange()nur Zahlen bisto - 1ausgegeben werden
Lösungsvorschlag Teilaufgabe a)
Lösungsvorschlag Teilaufgabe b)
Lösungsvorschlag Teilaufgabe c)
Interesse an einer Zusammenarbeit?
- Entwicklung von Desktopanwendungen
- Datenanalyse & Machine Learning
- Automatisierte Datenverarbeitung