Siden gir en innføring i String-klassen og en oversikt over nyttig String-metoder.

String-klassen

En String er en sekvens med tegn (char-verdier) og har metoder for å 1) lese ut enkelttegn eller deler av tegnsekvensen, eller 2) lage ny String-instanser basert på deler av innholdet. Merk at det ikke finnes metoder i String som endrer på innholdet, så String vil derfor i praksis fungere som verdier. Istedet for å endre på innholdet bygger en opp nye String-instanser med innhold fra eksisterende. For å gjøre dette lettere, har Java egen syntaks for String-konstanter, +-operatoren kan brukes for å sette samme String-instanser og verdier og objekter gjøres automatisk om til String-instanser i mange sammenhenger. Følgende kode illustrerer flere av disse:

String s = "Dette er en String";
String melding = "Første bokstav i " + s + " er " + s.charAt(0);
System.out.println(melding);

Først initialiseres variabelen s til en String som inneholder tegnsekvensen D, e, t, t, e, , e, r, , e, n, , S, t, r, i, n, g.
Deretter initialiseres melding-variabelen vha. +-operatoren til sammensetningen av String'en "Første bokstav i", String-instansen som s refererer til, " er " og det første tegnet i s (posisjon 0). Dette skal gi en String med tegnene "Første bokstav i Dette er en String er D", som altså er det melding initialiseres til. Denne blir så skrevet ut av System.out.println.

En alternativ kodelinje som gir samme resultat er følgende:

System.out.println("Første bokstav i Dette er en String er " + "Dette er en String".substring(0, 1));

Her ser vi at String'en som s ble initialisert til i sted, nå er lagt direkte inn i et uttrykk som brukes som argument til println. Merk spesielt at en faktisk kan kalle en metode på String'en direkte, istedetfor å bruke en variabel (kjekt ved testing av String-metoder). For det andre brukes String-metoden substring istedenfor charAt, for å hente ut den første bokstaven i "Dette er en String".

Her er noen nyttige String-metoder som det bare er å lære seg først som sist:

  • char charAt(int n) returnerer tegnet i posisjon n, hvor det første tegnet har posisjon 0. F.eks. vil "abc".charAt(1) returnere tegnet b.
  • int indexOf(char c) returnerer posisjonen til det første tegnet som er lik c, og eller -1, hvis tegnet ikke finnes i denne String'en. F.eks. vil "abc".indexOf('b') returnere 1.
  • int indexOf(String s) returnerer posisjonen i denne String'en hvor hele innholdet i s finnes og eller -1. F.eks. vil "abc".indexOf("bc") returnere 1.
  • boolean contains(String s) returnerer om denne String'en innholder innholdet i s et eller annet sted. F.eks. vil "abc".contains("bc") returnere true.
  • boolean startsWith(String s) returnerer true hvis denne String'en starter med bokstavene i s (i samme rekkefølge), ellers returneres false. F.eks. vil "abc".startsWith("ab") returnere true.
  • boolean endsWith(String s) returnerer true hvis denne String'en slutter med bokstavene i s (i samme rekkefølge), ellers returneres false. F.eks. vil "abc".endsWith("bc") returnere true.
  • String substring(int start, int end) returnerer en ny String-instans med bokstavene fra (om med) posisjon start til (men ikke med) posisjon end. F.eks. vil "abc".substring(2, 3) returnere "c".

 

String substring(int start) returnerer en ny String-instans med bokstavene fra (og med) posisjon start til enden. F.eks. vil "abc".substring(1) returnere "bc".