^ Linux - Friheden til at programmere i Java: Version 0.7.20040516 - 2020-12-31 ^| | [[java:java-i18n-formatering-tal|forrige]] | Kapitel 24. Internationale programmer | [[java:java-apprevhist|næste]] | ---- ==== 24.7. Tekster og tegn ==== Java tilbyder klasser til at * Analysere tegn * Sammenligne strenge * Finde text boundaries i sætninger * Konvertere non-unicode tekst === 24.7.1. Analyse af tegn === Følgende kode duer ikke: char ch; if ((ch >= 'a' && ch <= 'z') || (ch >= 'A' && ch <= 'Z')) //ch is a letter if (ch >= '0' && ch <= '9') //ch is a digit if (ch == ' ' || ch == '\n' || ch == '\t') //ch is a whitespace Benyt altid metoderne på klassen Character: isDigit isLetter isLetterOrDigit isLowerCase / isUpperCase isSpaceChar isDefined === 24.7.2. Sammenligning af strenge === Sikker sammenligning af strenge gøres vha. metoden compare() på klasssen Collator. Sammenligning kan ikke gøres sikkert med String.compareTo(), idet den sammenligner binært på Unicode-niveau, hvilket ikke altid stemmer overens med et sprogs tegn-orden. Således opnås en instans af Collator for en given Locale: Collator myCol = Collator.getInstance(aLocale); To strenge sammenlignes således: myCol.compare(firstString, secondString); compare() returnerer -1, 0 el. 1, afhængig af om firstString er hhv. mindre end, lig med el. større end secondString. === 24.7.3. Analyse af grænser i tekst === Klassen BreakIterator gør det muligt at finde grænser (boundaries) i form af positionsnumre i en tekst for en given Locale på følgende niveauer: tegn ord sætning linje Ved instantieringen af BreakIterator invokeres én af følgende klassemetoder til at konstruere instansen med den ønskede egenskab: getCharacterInstance getWordInstance getSentenceInstance getLineInstance Eksempel: BreakIterator bi = BreakIterator.getWordInstance(aLocale); ---- | [[java:java-i18n-formatering-tal|forrige]] | [[java:index|hjem]] | [[java:java-apprevhist|næste]] | | Formatering af tal og beløb | [[java:java-i18n|op]] | Revisionshistorie for bogen |