Konverter streng til array i Java: 3 enkle metoder!

Innledning

I programmeringssammenheng oppstår det ofte behov for å transformere en tekststreng til en array. Dette er nyttig for å fragmentere en streng i mindre deler, for eksempel for å isolere enkeltord eller karakterer. Java tilbyr diverse metoder for å konvertere strenger til arrayer, tilpasset ulike bruksområder.

Metode 1: Anvendelse av split()-funksjonen

Den mest frekvente metoden for å konvertere en streng til en array i Java er ved hjelp av split()-funksjonen. Denne funksjonen tar en streng som inndata og deler den opp i et array av mindre strenger, basert på et definert skilletegn. Skilletegnet fungerer som en markør for å definere grensene mellom de individuelle delstrengene.

Syntaks

java
String[] array = streng.split(skilletegn);

Eksempel

Anta at vi har en streng kalt navn som inneholder navn på flere personer, separert med komma. Vi kan anvende split()-funksjonen for å transformere denne strengen til et array av navn:

java
String navn = "Per,Kari,Ola,Lise";
String[] navnArray = navn.split(",");

for (String navn : navnArray) {
System.out.println(navn);
}

Resultat:


Per
Kari
Ola
Lise

Metode 2: Bruk av toCharArray()-funksjonen

En annen metode for å konvertere en streng til en array er ved hjelp av toCharArray()-funksjonen. Denne funksjonen transformerer hvert tegn i strengen til et individuelt element i et char-array.

Syntaks

java
char[] array = streng.toCharArray();

Eksempel

La oss anta at vi har en streng kalt ord som inneholder ordet «verden». Vi kan benytte toCharArray()-funksjonen for å transformere denne strengen til et array av tegn:

java
String ord = "verden";
char[] ordArray = ord.toCharArray();

for (char tegn : ordArray) {
System.out.println(tegn);
}

Resultat:


v
e
r
d
e
n

Metode 3: Anvendelse av StreamTokenizer-klassen

For mer komplekse situasjoner kan StreamTokenizer-klassen benyttes for å konvertere en streng til et array. Denne klassen gir større kontroll over delingsprosessen, inkludert muligheten til å definere egne skilletegn og håndtere escape-tegn.

Syntaks

java
StreamTokenizer tokenizer = new StreamTokenizer(new StringReader(streng));
List<String> array = new ArrayList<>();

while (tokenizer.nextToken() != StreamTokenizer.TT_EOF) {
array.add(tokenizer.sval);
}

Eksempel

La oss anta at vi har en streng kalt html som inneholder HTML-kode. Vi kan bruke StreamTokenizer-klassen for å transformere denne strengen til et array av HTML-elementer, separert med tagger:

java
String html = "<html><head><title>Overskrift</title></head><body><h1>Velkommen!</h1></body></html>";
StreamTokenizer tokenizer = new StreamTokenizer(new StringReader(html));
List<String> htmlElementer = new ArrayList<>();

while (tokenizer.nextToken() != StreamTokenizer.TT_EOF) {
if (tokenizer.ttype == StreamTokenizer.TT_WORD) {
htmlElementer.add(tokenizer.sval);
}
}

Resultat:


html
head
title
Overskrift
/title
/head
body
h1
Velkommen!
/h1
/body
/html

Konklusjon

Det eksisterer flere metoder for å konvertere en streng til en array i Java, tilpasset ulike bruksområder. split()-funksjonen er den enkleste og mest brukte metoden for å transformere en streng til et array av delstrenger, mens toCharArray()-funksjonen er anvendelig for å konvertere en streng til et array av tegn. For mer avanserte oppgaver kan StreamTokenizer-klassen benyttes for å oppnå mer kontroll over delingsprosessen.

Ofte stilte spørsmål

1. Hvilke fordeler gir split()-funksjonen?
split()-funksjonen er brukervennlig og tilbyr en effektiv måte å konvertere en streng til et array av delstrenger.

2. Hvilke alternative metoder finnes for å konvertere en streng til en array?
Du kan anvende toCharArray()-funksjonen eller StreamTokenizer-klassen for å transformere en streng til en array.

3. Hvordan håndterer jeg escape-tegn ved bruk av split()-funksjonen?
Du kan benytte den valgfrie regex-parameteren for å definere et regulært uttrykk som håndterer escape-tegn.

4. Kan jeg bruke split()-funksjonen for å dele en streng på flere skilletegn?
Ja, du kan bruke |-tegnet (vertikal strek) for å spesifisere flere skilletegn.

5. Hva er forskjellen mellom split()– og trim()-funksjonene?
split()-funksjonen deler en streng i et array av delstrenger basert på et skilletegn, mens trim()-funksjonen fjerner mellomrom fra starten og slutten av en streng.

6. Er det mulig å konvertere et array til en streng?
Ja, du kan benytte join()-funksjonen for å transformere et array tilbake til en streng.

7. Hvilke datatyper finnes for arrayer i Java?
Arrayer i Java kan ha datatyper som int, double, boolean og String.

8. Kan jeg definere arrayets størrelse i Java?
Ja, du må spesifisere størrelsen på arrayet ved deklarasjon.