24.7. Tekster og tegn

Java tilbyder klasser til at

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