toUpperCase - Länge zwingend erhalten



  • Hallo,

    ich brauche ein toUpperCase, was nur die Buchstaben a-z ändert oder zumindest eins, was die Länge nicht ändert.
    Locale scheint nicht zu helfen.
    Beispiel:

    String s1 = "aßb";
    String s2 = s1.toUpperCase(Locale.ENGLISH); // = "ASSB"
    

    Jemand ne Idee?
    lg



  • Egal, toLowerCase scheint unproblematisch zu sein und ich brauch nur ein sicherers toUpper oder toLower.

    Danke schön.



  • Jockelx schrieb:

    Egal, toLowerCase scheint unproblematisch zu sein

    Der Schein trügt. Es ist für das Zeichen ß unproblematisch, aber noch lange nicht für alle Zeichen in allen Sprachen.

    Ist dir bewusst, dass ö/̈o entweder aus zwei oder aus einem Codepoint bestehen kann? Die "Länge" ist in Unicode eine denkbar ungeeignete Metrik.



  • Mmh?
    Ich bin jetzt nicht der grosse Java-Kenner, aber hoffe doch wohl mal sehr, dass
    "ö".length() immer 1 zurück gibt, völlig wurscht, wieviele byte das brauch.



  • Jockelx schrieb:

    Mmh?
    Ich bin jetzt nicht der grosse Java-Kenner, aber hoffe doch wohl mal sehr, dass
    "ö".length() immer 1 zurück gibt, völlig wurscht, wieviele byte das brauch.

    Reicht das als Beweis: https://ideone.com/lm5FBK


Log in to reply