^ 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 |