linuxbog.old:java:java-i18n-working-with-text
| Linux - Friheden til at programmere i Java: Version 0.7.20040516 - 2020-12-31 | ||
|---|---|---|
| forrige | Kapitel 24. Internationale programmer | 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);
linuxbog.old/java/java-i18n-working-with-text.txt · Last modified: by 127.0.0.1
