Datentypen Was ist der Sinn vom Datentyp "char" ?

Jack159

Bekanntes Mitglied
Ich verstehe nicht so ganz den Sinn vom Datentyp "char".
Einerseits kann man mit ihm und den entsprechenden Codes die verschiedensten Zeichen darstellen. Dies verstehe ich ja noch.
Aber wo liegt der Sinn, wenn ich mit diesen Zeichen rechnen kann?
 

Marco13

Top Contributor
Bis zu einen gewissen Grad ist die Möglichkeit, damit rechnen zu können, ein "Nebeneffekt" der Darstellung eines chars (der intern sehr ähnlich zu einen 'short' ist - nur eben ohne Vorzeichen).

Der Nebeneffekt ist aber unglaublich praktisch:
char zufälligerBuchstabe = 'a' + zahlZwischenNullUndFünfundzwanzig;
 

Tobse

Top Contributor
Der Sinn liegt in der austauschbarkeit mit int bzw. byte.
In jeder Datei, also ganz egal ob es sich um text handelt oder z.B. um ein Lied, sind bytes gespeichert. Gibt jetzt aber z.B. eine passage in einer datei (oder eben die ganze, z.B. java dateien), die als Text interpretiert werden soll, kann man sie als byte auslesen, dann als Zeichen behandeln und zu einem String zusammensetzen.
Des weiteren braucht ein String mit der Länge 1 und dem Inhalt z.B "f" mehr Speicherplatz als ein char mit dem zeichen "f".

Aber wenn du ein wenig mit komplexeren Dateien arbeitest als .txt oder .inf (z.B. gif/bmp/wma), dann wirst du den Sinn ganz schnell erkannt haben.
 
S

SlaterB

Gast
ein Sinn ist '0' + 4 = '4', da kommt man gut voran, schade dass '0' bis '9' nicht gleich die chars 0-9 sind, dann wärs noch einfacher,
auch Vergleiche machen sich gut für Bereichsprüfungen: if (x > 'a' && x < 'z')

letztlich ist die Frage: warum nicht als Zahl abbilden, was wäre der Gegengrund?
wenn man eine Menge von Werten hat muss man die ja irgendwie ablegen, als Zahlen bietet es sich immer an,
zum Abzählen, Index von Arrays, ist auch vor Java quasi von Anfang an in der 'Natur' gegeben ist,
wie sollen chars in einer Datei stehen wenn nicht als ASCII-Codes usw.,

es gibt auch keine Tastatur mit genügend unterschiedlichen Zeichen,
wie sollte man chars schlicht eintippen wenn nicht als Zahl? z.B. 0x35AB in Hexa

boolean ist die Ausnahme unter den Java-Datentypen, ist nicht als 0 + 1 abgebildet,
aber von diesen beiden auf den riesigen char-Raum zu schließen gebietet sich nicht
 

André Uhres

Top Contributor
Der einfache char-Datentyp wurde zur Unterstützung von Unicode-Zeichen in Java eingeführt. Der einfache byte-Datentyp ist dafür ungeeignet, weil er nur 8 Bits hat und daher nicht alle Zeichen darstellen kann.

Gruß,
André
 

Andi_CH

Top Contributor
Das resultiert aus der Tatsache, dass ein Zeichen für den Computer auch nur eine Zahl ist.
Siehe: ASCII - Wikipedia, the free encyclopedia

Hilfreich ist das Rechnen mit Zahlen auch allemal.
Operatoren wie < und > z.B. sind hilfreich um einen Buchstaben in einem bestimmten Bereich zu finden.

Rechnen mit Zahlen ja, aber Buchstaben sind definitv keine Zahlen aber mehr dazu weiter unten.

Wenn dein Argument greifen soll, schaffen wir alle Typen ab, denn für den Computer ist alles nur eine Zahl. Es ist kein Argument sondern eine ***ZENSUR*** Ausrede.

Der Typ Char ist einer der Fehler von Java - inkonsequent umgesetzt - unbesehen von C übernommen.

Es gibt KEINE Rechenoperation für Buchstaben. char + 1 gehört verboten. Wenn schon heisst es char.nachfolger() und wenn schon nicht OO dann wenigstens über eine Wrapperklasse Character.nachfolger(char)
Ja, ihr dürft nachfolger und vorgaenger auch auf englisch übersetzen (z.B. succ() und pred()), aber es geht ums Prinzip.

So nebenbei - char ist vom typ her viel näher beim enum als bei Zahlen.
Es verbietet niemand Operatoren für Typen zu definieren - z.B die Operatoren < und > aber + und Buchstaben - IGITT!
 
S

SlaterB

Gast
@Andi_CH
wie würdest du alle Arbeiten mit chars implementieren, z.B. Verschlüsselung, z.B. das einfache häufige Caesar-Beispiel
http://www.java-forum.org/java-basics-anfaenger-themen/121881-caesarverschluesselung.html
ohne + -, modulo? in Schleifen succ() aufrufen?

wenn es Zeichen nicht als Zahlen gäbe wäre für jeden der erste Schritt sie nach Zahlen umzuwandeln,
um dann erst etwas damit anfangen zu können ;)

alles einfache, was succ() hat, hat auch mit Nummerierung und Zahlen zu tun,
eine LinkedList-Verknüpfung ergibt automatisch auch eine Gesamtliste mit size(), getElement(index),
index + 4 rechnen usw.,

erst bei einem zweidimensionalen Netz wird es interessanter, String ist das quasi auch als Liste von Chars,
da kommt man mit Zahlen rein handlich nicht mehr gut hin..,
"abc" = 'a'*65000^2 + 'b'*65000 + 'c' ..
 
Zuletzt bearbeitet von einem Moderator:

Andi_CH

Top Contributor
z.B. mit ValueOf()? Transormieren in den Raum in dem man die gewünschten Operationen ausführen kann ...

ADA (Ja, es ist für mich immer noch die vernünftigeste aller mir bekannten Sprachen) impementiert char als Eunmeration und definiert einen Satz von Operatoren.

Auch die Ada-Entwickler haben gesündigt : Es gibt "uncheckedConversion" so ganz ohne geht es auch nicht.
 
S

SlaterB

Gast
Enum ist wahrlich ein gutes hier noch nicht genannte Stichwort zu Vervollständing,
da gibt auch in Java in der Tat kein Rechnen, aber eben valueOf() und Co.

für die häufigen chars ist der Weg direkter, Enum wäre denkbar aber überall umständlich,

na ich habe eigentlich nichts neues zu sagen ;)
 

Andi_CH

Top Contributor
Wer Ada programmiert flucht (sehr?) häufig über das mehr als sture Typenverstänis - wer C programmiert flucht über das fehlende Typenverständnis - Java ist irgendwo dazwischen ...
Etwas konsequenter hätten die Javaentwickler schon sein dürfen.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
D Interfaces von Interfaces macht das noch Sinn? Java Basics - Anfänger-Themen 21
F Hat es noch einen Sinn, alte Versionen zu lernen Java Basics - Anfänger-Themen 45
berserkerdq2 Wo ist der SInn, dass man den Stream, den ich zum Schreiben nutze, outputstream nenne? Java Basics - Anfänger-Themen 5
H Sinn von Interfaces Java Basics - Anfänger-Themen 21
W Sinn eines Singleton ? Java Basics - Anfänger-Themen 14
R getUserProperties() macht für mich keinen Sinn Java Basics - Anfänger-Themen 8
E Sinn: final in Parameterliste verwenden Java Basics - Anfänger-Themen 2
B Sinn von Lambdas? Java Basics - Anfänger-Themen 16
5 Welchen Sinn hat ein Runnable Java Basics - Anfänger-Themen 6
P OOP Sinn von abstrakten Klassen Java Basics - Anfänger-Themen 2
M Kapselung Datenkapselung Sinn direkter Zugriff? Java Basics - Anfänger-Themen 1
B Der Sinn von Arrays Java Basics - Anfänger-Themen 2
Q Container sinn? Java Basics - Anfänger-Themen 3
S string index out of range - es ergibt keinen Sinn Java Basics - Anfänger-Themen 6
C Sinn eines Interfaces? Java Basics - Anfänger-Themen 4
J Sinn/Nutzen von Scanner Java Basics - Anfänger-Themen 23
B Sinn von Reflections Java Basics - Anfänger-Themen 10
H Vererbung Prinzip der Ersetzbarkeit-Sinn? Java Basics - Anfänger-Themen 9
F Sinn der SuppressWarnings("unused")-Annotation Java Basics - Anfänger-Themen 5
R Sinn des programmes Java Basics - Anfänger-Themen 10
W Sinn von Konstruktorsyntax und finalize Java Basics - Anfänger-Themen 14
J Worin besteht der Sinn und Anwendungsbereich von Dreidimensionalen Arrays? Java Basics - Anfänger-Themen 11
T Sinn von finally? Java Basics - Anfänger-Themen 3
M Variablen Zinseszinsberechnung - Variable ergibt keinen Sinn Java Basics - Anfänger-Themen 15
A Klassen Sinn des Konstruktors Java Basics - Anfänger-Themen 12
P Sinn des Security Managers Java Basics - Anfänger-Themen 2
J Welchen Sinn haben abstrakte Methoden? Java Basics - Anfänger-Themen 4
D Sinn von Jar Dateien Java Basics - Anfänger-Themen 5
D Sinn von Interfaces - Wozu? Java Basics - Anfänger-Themen 9
K Sinn eigener Exceptions Java Basics - Anfänger-Themen 11
Luk10 Sinn von Instanzierung ohne Referenz Java Basics - Anfänger-Themen 7
hdi Sinn von RuntimeExceptions? Java Basics - Anfänger-Themen 90
Developer_X NullPointer Exception ohne Sinn Java Basics - Anfänger-Themen 19
L Sinn hinter Generic? Java Basics - Anfänger-Themen 5
M Der Java Schlüsselwort null; ?Welche Anweisung und Sinn? Java Basics - Anfänger-Themen 12
A Macht es Sinn Arraylisten mit Gettern zu übergeben? Java Basics - Anfänger-Themen 19
M Variable überwachen und Sinn eines Threads Java Basics - Anfänger-Themen 7
G Sinn vo OOP Java Basics - Anfänger-Themen 5
P Unterschied zwischen Interface und Vererbung und Sinn? Java Basics - Anfänger-Themen 5
G sinn von JList Java Basics - Anfänger-Themen 6
K Sinn von Interfaces Java Basics - Anfänger-Themen 10
F Datentypen Wertebereiche passender Datentyp Java Basics - Anfänger-Themen 5
K Warum wird mir hier nach dem ersten Durchlauf zwei mal "welchen Datentyp wollen sie übergeben?" ausgegeben ? Java Basics - Anfänger-Themen 1
MiMa Probleme mit Datentyp long ?? Java Basics - Anfänger-Themen 2
D Arraylist mit Komplexen Datentyp Java Basics - Anfänger-Themen 3
Igig1 Welche Werte sind als default Werte in einem Array, der als Datentyp eine Klasse hat? Java Basics - Anfänger-Themen 1
B Datentyp für Einzelnes Objekt oder Liste Java Basics - Anfänger-Themen 9
C initialisieren eines arrays richtiger Größe und mit geeignetem Datentyp Java Basics - Anfänger-Themen 26
H Datentyp mit 3 Zuständen Java Basics - Anfänger-Themen 42
javaluke Erste Schritte Array nach Datentyp sortieren Java Basics - Anfänger-Themen 16
Kanaska Datentyp für Zahlenbereiche Java Basics - Anfänger-Themen 7
A Datentyp char Java Basics - Anfänger-Themen 27
I Klassen als Datentyp nutzen? Java Basics - Anfänger-Themen 11
C unverständlicher Code Attribute ohne Datentyp, wie geht das? Java Basics - Anfänger-Themen 8
T Datentyp mit Anführungszeichen drinnen Java Basics - Anfänger-Themen 3
R Datentypen Datentyp String lenght & charAT Java Basics - Anfänger-Themen 4
M Array mit eigenem Datentyp probleme beim übergeben Java Basics - Anfänger-Themen 6
C Interface als Datentyp eines Attributes? Java Basics - Anfänger-Themen 6
B Datentypen Datentyp welcher den gleichen Namen wie die Klasse trägt? Java Basics - Anfänger-Themen 1
D Datentypen Welcher ist der beste Datentyp? Java Basics - Anfänger-Themen 28
F Datentypen Missverständnis Datentyp Java Basics - Anfänger-Themen 2
D Rechnen mit numerischen Datentyp Frage Java Basics - Anfänger-Themen 16
E Klassename als Datentyp??? Java Basics - Anfänger-Themen 4
F Wertebereich/Datentyp Java Basics - Anfänger-Themen 26
M Datentypen Java Datentyp Definition Java Basics - Anfänger-Themen 6
MiMa Datentyp Short Wert zuweisen über Methode Java Basics - Anfänger-Themen 2
Z Was habe ich davon mit einem Datentyp verschiedene Instanzen zu haben? Java Basics - Anfänger-Themen 6
D Klassen Gesucht: Einfache Beispiel-Klasse für einen Datentyp Java Basics - Anfänger-Themen 7
E Datentypen Benutzerdefinierten Datentyp verwenden Java Basics - Anfänger-Themen 1
ms_cikar Java Datentyp unwandlung Java Basics - Anfänger-Themen 7
G Datentypen Tipps, Ratschläge erwünscht bzgl. Datentyp bestimmen über Wertebereich Java Basics - Anfänger-Themen 5
Y Warum void statt Datentyp + return Java Basics - Anfänger-Themen 4
M Interface als Datentyp Java Basics - Anfänger-Themen 12
R Variablen Datentyp erst während Laufzeit festlegen Java Basics - Anfänger-Themen 6
1 Neuen Datentyp für rationale Zahlen als Klasse entwickeln Java Basics - Anfänger-Themen 20
R Datentypen Datentyp eines Werts in einer Textdateizeile abfragen und ändern Java Basics - Anfänger-Themen 4
R Interface Datentyp bei Erzeugung eines Objekts, dessen Klasse eine Schnittstelle implementiert Java Basics - Anfänger-Themen 18
B Collections Collection soll nur einen bestimmten Datentyp aufnehmen Java Basics - Anfänger-Themen 12
V Datentypen Frage zum Datentyp Byte Java Basics - Anfänger-Themen 11
B datentyp in binär umwandeln Java Basics - Anfänger-Themen 5
S Primitiver Datentyp Short , Vorteil/Nachteil Betrachtung Java Basics - Anfänger-Themen 6
J Field auf Datentyp prüfen Java Basics - Anfänger-Themen 8
D Datentyp Object Java Basics - Anfänger-Themen 2
A Datentypen Mehrdimensionaler Datentyp gesucht Java Basics - Anfänger-Themen 4
D Datentypen Abstrakter Datentyp lässt sich nicht casten Java Basics - Anfänger-Themen 7
F Klassenorganisation: Datentyp in Datentyp anlegen Java Basics - Anfänger-Themen 3
N Unerklärlich: Rekursiver Algorithmus gibt falschen Datentyp zurück... Java Basics - Anfänger-Themen 4
G Eigener Autoboxing Datentyp Java Basics - Anfänger-Themen 3
Binary.Coder Welcher Datentyp für den Simplex Algorithmus Java Basics - Anfänger-Themen 3
Guybrush Threepwood Effizientester Datentyp zur Speicherung einer ungeordneten Menge von ints Java Basics - Anfänger-Themen 8
B Datentyp für +,-,*,/ Java Basics - Anfänger-Themen 5
D Datentypen Rekursiver Datentyp Java Basics - Anfänger-Themen 8
GianaSisters Auf Datentyp überprüfen Java Basics - Anfänger-Themen 13
W Datentypen Operatoren für eigenen Datentyp nutzen Java Basics - Anfänger-Themen 2
M Array mit komplexem Datentyp Java Basics - Anfänger-Themen 9
M 2 Arrays mit komplexen Datentyp vergleichen Java Basics - Anfänger-Themen 8
G Datentypen Welcher Datentyp Java Basics - Anfänger-Themen 2
F Datentypen Welchen Wert hat ein einfacher Datentyp nach der Deklaration? Java Basics - Anfänger-Themen 6
J Datentypen Datentyp für Datum Java Basics - Anfänger-Themen 23
B Java Bean, JSP, Komplexer Datentyp Java Basics - Anfänger-Themen 3

Ähnliche Java Themen

Neue Themen


Oben