Excerpt |
---|
Tekst er en viktig type data, og Java inneholder mange klasser for å håndtere tekst. Her kan man lese litt om hva tekst er, hvordan det håndteres i Java og få en oversikt over nyttige tekst-relaterte metoder. |
Tekst er enkelt sagt en sekvens av tegn (bokstaver, tall, spesialtegn, ...). Java har en egen datatype for tegn kalt char, basert på Unicode-standarden for koding av tegn (se http://unicode.org/ og https://www.youtube.com/watch?v=IRdupNXpm8k for mer om Unicode) og en klasse for objekt-varianten kalt Character. Sistnevnte brukes mest ifm. med Collection-rammeverket og for å kalle metoder for å klassifisere tegn, f.eks. Character.isLowerCase(c) eller gjøre om til store eller små bokstaver, f.eks. Character.toUpperCase(c).
Det finnes flere klasser for sekvenser av tegn, og den vanligste er String-klassen, som det er spesiell støtte for å Java-språket. Dersom man skal bygge eller manipulere større mengder på en effektiv måte så er StringBuilder og StringBuffer nyttige.
Når en jobber med tekst, har en ofte behov for å gjøre om teksten til andre datatyper, og alle objekt-klassene for de grunnleggende datatypene (boolean, int, double, osv.) har egne metoder for å konvertere fra tekst til dataverdi. F.eks. returnerer Integer.valueOf(string) tallet som string representerer.
Nyttige klasser og metoder for tekst-håndtering
Character
Klasse-/metodenavn | Beskrivelse | Eksempel |
---|---|---|
Character | Klasse som representerer ett tegn | |
Character.isDigit(c) | Returnerer true om c er et siffer, ellers false | Character.isDigit('0') returnerer true |
Character.isWhitespace(c) | Returnerer true om c er mellomrom, tab, linjeskift eller annet "blankt" tegn, ellers false | Character.isWhitespace('\n') returnerer true |
Character.isUpperCase(c) | Returnerer true om c er den store varianten av en bokstav, ellers false | Character.isUpperCase('A') returnerer true |
Object.toString() | Returnerer objekt (altså hva som helst) omgjort til tekst, brukes implisitt ved bruk av tekst og + | "0123".toString() returnerer "0123" |
String | Sekvens av tegn, kan ikke endres. | |
String.valueOf(value-or-object-ref) | Returnerer en String-representasjon av det du sender inn. Dersom det er et objekt brukes object-ref.toString() metoden fra objektet. | String.valueOf(2) returnerer "2" |
string.charAt(pos) | Returnerer tegnet i indeks pos i string | "0123".charAt(1) returnerer '1' |
string.substring(start) | Returnerer resten av string fra indeks start | "0123".substring(1) returnerer "123" |
string.substring(start, end) | Returnerer utsnittet av string fra og med start til (men ikke med) end | "0123".substring(1,3) returnerer "12" |
string.startsWith(prefix) | Returnerer true om string starter med prefix, ellers false | "0123".startsWith("01") returnerer true |
string.endsWith(prefix) | Returnerer true om string ender med prefix, ellers false | "0123".endsWith("3") returnerer true |
string.contains(sub) | Returnerer true om string inneholder sub (et eller annet sted). | "0123".contains("2") returnerer true |
string.indexOf(sub) | Returnerer indeksen til den første forekomsten av sub, eller -1 om den ikke finnes | "tralala".indexOf("la") returnerer 3 |
string.lastIndexOf(sub) | Returnerer indeksen til den siste forekomsten av sub, eller -1 om den ikke finnes | "tralala".lastIndexOf("la") returnerer 5 |
StringBuilder | Sekvens av tegn, som kan endres, ofte kalt et tekstbuffer. | |
StringBuilder.append(object) | Gjør om object til tekst og legger til teksten bakerst i bufferet. | |
StringBuilder.insert(index, object) | Gjør om object til tekst og skyter inn teksten på indeksen index. | |
StringBuilder.toString() | Returnerer innholdet i bufferet som en String | |
Boolean.valueOf(string) | Returnerer true om string er "true", ellers false | |
Integer.valueOf(string) | Returnere string konvertert til/tolket som et heltall (int) | Integer.valueOf("42") returnerer 42 |
Integer.valueOf(string, radix) | Returnere string konvertert til/tolket som et heltall (int) i tallsystemet radix | Integer.valueOf("42", 8) returnerer 34 |
Double.valueOf(string) | Returnere string konvertert/tolket som et desimaltall (double) | Double.valueOf("3.14") returnerer 3.14 |