| 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);