Linux - Friheden til at programmere i Java: Version 0.7.20040516 - 2020-12-31 | ||
---|---|---|
forrige | Kapitel 24. Internationale programmer | næste |
Java tilbyder klasser til at
Analysere tegn
Sammenligne strenge
Finde text boundaries i sætninger
Konvertere non-unicode tekst
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
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.
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);