Hvordan dele strenger i Java
Metoden split() kan brukes til å dele strenger i Java. Den inneholder en parameter for separatoren og en valgfri parameter for antall delstrenger. Det er også noen særtrekk å være oppmerksom på når du bruker metoden. Vi forklarer alt du trenger å vite.
Hva er split()?
Java-strenger sammenføyer tegn, sifre og spesialtegn. De finnes som objekter i klassen java.lang og opprettes og endres med String-klassen. I programmeringsspråket Java kan du også dele opp strenger i forskjellige delstrenger. Java-funksjonen split() brukes til å trekke ut bestemte segmenter fra en streng eller dele den opp i enkeltdeler. Nedenfor viser vi deg mer detaljert hva du kan gjøre med denne metoden.
Når du deler en Java-streng med split(), får du en matrise med flere strenger. Dette blir returverdien.
Hva er syntaksen til Java split()?
Den grunnleggende syntaksen til Java split() er veldig enkel, men kan utvides med valgfrie parametere. Her er den grunnleggende versjonen:
String[] split(String regex)javaI dette eksemplet vil utdataene være i form av en matrise. String er strengobjektet. regex er parameteren som brukes til å bestemme hvor strengen skal deles. Parameteren er ikke obligatorisk, men anbefales.
Den ekstra valgfrie parameteren limit lar deg spesifisere hvor mange delstrenger som skal opprettes. Verdien er et heltall. Hvis den er null eller negativ, vil alle delstrenger bli inkludert i utdataene. Hvis du velger en positiv verdi, vil du få det antallet delstrenger i utdataene. Med den ekstra valgfrie parameteren limit vil syntaksen se slik ut:
String[] split(String regex, int limit)javaHvordan bruke split() med mellomrom som skilletegn
La oss se på noen praktiske eksempler. Først lager vi en streng som inneholder fire ord: «Dette er et eksempel». Deretter deler vi opp strengen ved hjelp av split(). Den mest intuitive måten å dele opp denne strengen på er å bruke de eksisterende mellomrommene mellom ordene. Slik gjøres det i koden:
public class Main {
public static void main(String[] args) {
String x = "This is an example";
String[] output = x.split(" ");
for (String y : output) {
System.out.println(y);
}
}
}javaI dette eksemplet initialiseres en strengvariabel x. Deretter brukes Java split() på strengen. Parameteren søker etter mellomrom i strengen og deler den opp på de stedene hvor den finner dem. Resultatet lagres deretter i en matrise kalt «output». Sløyfen for brukes til å liste opp delstrengene. Java-kommandoen System.out.println gir oss følgende utdata:
This
is
an
examplejavaHvordan bruke komma som skilletegn, med og uten mellomrom
Du kan også bruke split() i Java med strenger som inneholder lister atskilt med komma. Du må bare bruke et lite triks, på grunn av hvor presist instruksjonene dine implementeres i Java. La oss først se på et eksempel uten trikset. La oss si at vi har en liste over ukedagene, atskilt med kommaer. Disse kommaene er perfekte som skilletegn for å legge inn i regex. Hvis vi setter opp koden på denne måten, vil den se slik ut:
public class Main {
public static void main(String[] args) {
String x = "Sunday, Monday, Tuesday, Wednesday, Thursday, Friday, Saturday";
String[] output = x.split(",");
for (String y : output) {
System.out.println(y);
}
}
}javaI dette eksemplet er resultatet ikke helt perfekt:
Sunday
Monday
Tuesday
Wednesday
Thursday
Friday
SaturdayjavaResultatet gir oss en oversiktlig liste over ukedagene. Imidlertid inneholder alle verdiene etter søndag et mellomrom før dagen. Siden vi bare brukte komma som skilletegn, ble mellomrommene stående igjen i delingsprosessen. For å få et renere resultat, bør vi bruke både komma og mellomrom som skilletegn. Hvis vi gjør det, vil koden se slik ut:
public class Main {
public static void main(String[] args) {
String x = "Sunday, Monday, Tuesday, Wednesday, Thursday, Friday, Saturday";
String[] output = x.split(", ");
for (String y : output) {
System.out.println(y);
}
}
}javaUtdataene er nå mye renere:
Sunday
Monday
Tuesday
Wednesday
Thursday
Friday
SaturdayjavaHvordan dele Java-strenger med sifre
Du kan også bruke split() til å dele Java-strenger som består av sifre. I vårt eksempel tar vi en lang nøkkel som er delt ved hjelp av punktum og kolon. Hvis vi ønsker å skille sifrene etter kolon, vil koden se slik ut:
public class Main {
public static void main(String[] args) {
String x = "194.518.552.1.17:6339";
String[] output = x.split(":");
for (String y : output) {
System.out.println(y);
}
}
}javaHer er resultatet:
194.518.552.1.17
6339javaHvordan bruke split() med begrensningsparameteren
Når du deler Java-strenger med split(), kan du også bruke den valgfrie limit. limit begrenser antall delstrenger som opprettes. Det er tre alternativer her: å tildele den en verdi mindre enn 0, 0 eller større enn 0.
split() med en grense mindre enn 0
Hvis du angir en verdi for limit som er mindre enn 0, vil det regulære uttrykket bli brukt uten begrensning på hele strengen. Den resulterende matrisen kan ha hvilken som helst lengde. Koden kan se slik ut:
public class Main {
public static void main(String[] args) {
String x = "Sunday, Monday, Tuesday, Wednesday, Thursday, Friday, Saturday ";
String[] output = x.split(", ", -3);
for (String y : output) {
System.out.println(y);
}
}
}javaSiden det er et mellomrom etter det siste ordet «Saturday», vil matrisen ende med en tom streng. Her er resultatet:
Sunday
Monday
Tuesday
Wednesday
Thursday
Friday
Saturdayjavasplit() med en grense på 0
Hvis du setter parameteren limit til 0, vil det regulære uttrykket igjen brukes så mange ganger som mulig. Lengden på matrisen er heller ikke begrenset. Men hvis det siste elementet er en tom streng, vil det ikke bli inkludert i den resulterende matrisen.
public class Main {
public static void main(String[] args) {
String x = "Sunday, Monday, Tuesday, Wednesday, Thursday, Friday, Saturday ";
String[] output = x.split(", ", 0);
for (String y : output) {
System.out.println(y);
}
}
}javaUtdataene ser ut som ovenfor, men uten den siste strengen:
Sunday
Monday
Tuesday
Wednesday
Thursday
Friday
Saturdayjavasplit() med en grense større enn 0
Forskjellen blir tydeligere når du angir en grense større enn 0. Da vil den bestemme hvor mange delstrenger som kan skrives ut.
public class Main {
public static void main(String[] args) {
String x = "Sunday, Monday, Tuesday, Wednesday, Thursday, Friday, Saturday ";
String[] output = x.split(", ", 3);
for (String y : output) {
System.out.println(y);
}
}
}javaVi får da et resultat som er vesentlig forskjellig fra de ovennevnte:
Sunday
Monday
Tuesday, Wednesday, Thursday, Friday, Saturdayjava