Wie groß ist '\n' ?
-
Also wie groß ist diese Sequenz? Also nach dem Ergebnis meines Programmes, welches die Größe eines Textes errechnet, 1 Byte. Aber irgendwie habe ich 2 Byte in Erinnerung, also, wie groß ist nun die '\n' Sequenz?
-
'\n' ist ein character literal, also vom Typ char, also 16Bit = 2Byte gross.
-
Original erstellt von MAG:
Also wie groß ist diese Sequenz? Also nach dem Ergebnis meines Programmes, welches die Größe eines Textes errechnet, 1 Byte. Aber irgendwie habe ich 2 Byte in Erinnerung, also, wie groß ist nun die '\n' Sequenz?Wonach rechnest du denn, sag nicht nach chars
-
\n wird unter windows als \r\n interpretiert
und unter MAC als \r wenn ich nicht irrealso ist \n in manchen situationen wirklich doppelt so groß
-
Shade: falsche Baustelle. Unter Java ist '\n' ein char, und damit per Definition 16 bit groß (Unicode ...)
-
Original erstellt von Bashar:
Shade: falsche Baustelle. Unter Java ist '\n' ein char, und damit per Definition 16 bit groß (Unicode ...)wenn von 'Sequenz' geredet wird, dann denke ich eigentlich an eine Zeichenfolge.
Und \n ist manchmal eine Zeichenfolge. Mehr wollte ich nicht sagen. Ob ein char jetzt 1,2 oder 1000 Byte hat ist egal - aber \n kann manchmal doppelt so groß sein wie \n (auch wenns paradox klingt)
-
\n \r \t usw. werden als Escape-Sequenzen bezeichnet, so dürfte das gemeint sein.
-
Ich schließe mich Bashars Meinung an: '\n' ist eine Escape-Sequenz beansprucht aber nur ein char. Ein char ist in Java wegen der Unicode-Unterstützung (bis UTF-16) 2 Byte groß.
-
Also Java unterstützt Unicode?
Naja, also ich bin zu erst davon ausgegangen, dass '\n' ein Byte groß ist, also eben weil ich dachte es wäre ein char (also eigentlich 1 Byte). Mhh, mal ein Beispiel:
Ich wollte mal rauskriegen wie groß eine bestimmte Datei ist. Also habe ich alle Zeichen gezählt und dann einfach ausgegeben. Als ich nun 86 Zeichen hatte, hat mir der Windows-Explorer auch soviel Byte als größe angegeben.
Wie geht das?Ich hatte mal was geschrieben:
if (charCount >= 1000) {
double newSize = (size + (edit.area.getRows()) / 1024
}Und da bin ich eben auf ziemlich andere Werte gekommen.
[ Dieser Beitrag wurde am 13.03.2003 um 17:41 Uhr von Pogo editiert. ]
-
Original erstellt von Pogo:
**Also Java unterstützt Unicode?
**Äh, ja Intern soweit ich weiß UTF-8.
**
Naja, also ich bin zu erst davon ausgegangen, dass '\n' ein Byte groß ist, also eben weil ich dachte es wäre ein char (also eigentlich 1 Byte). Mhh, mal ein Beispiel:Ich wollte mal rauskriegen wie groß eine bestimmte Datei ist. Also habe ich alle Zeichen gezählt und dann einfach ausgegeben. Als ich nun 86 Zeichen hatte, hat mir der Windows-Explorer auch soviel Byte als größe angegeben.
Wie geht das?
**Java konvertiert bei der Ein/Ausgabe automatisch zwischen dem internen UTF-8 und dem externen Zeichensatz. Man kann auch Unicode-EA und UTF-8-EA machen.
-
UTF-8 glaub ich nun weniger, dann wär ja kein O(1)-Zugriff auf Stringelemente möglich.
-
Original erstellt von Bashar:
UTF-8 glaub ich nun weniger, dann wär ja kein O(1)-Zugriff auf Stringelemente möglich.ich denke intern heißt, wie es an das OS weitergegeben wird...
-
Das wäre extern.
-
Original erstellt von Bashar:
UTF-8 glaub ich nun weniger, dann wär ja kein O(1)-Zugriff auf Stringelemente möglich.Argument Aber in den Class-Files ists UTF-8 habe ich wohl durcheinander gebracht. Die Java Lang Spec verliert kein Wort über UTF-8 also kanns net sein. Dann wohl doch Unicode