Wie groß ist '\n' ?



  • \n wird unter windows als \r\n interpretiert
    und unter MAC als \r wenn ich nicht irre

    also 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


Anmelden zum Antworten