Metoden split() kan användas för att dela upp strängar i Java. Den innehåller en parameter för separatorn och en valfri parameter för antalet delsträngar. Det finns också några särdrag att beakta när metoden används. Vi förklarar allt du behöver veta.

Vad är split()?

Java-strängar sammanfogar tecken, siffror och specialtecken. De finns som objekt i klassen java.lang och skapas och modifieras med klassen String. I programmeringsspråket Java kan du också dela upp strängar i olika delsträngar. Javas split() används för att extrahera vissa segment från en sträng eller för att dela upp den i enskilda delar. Nedan visar vi mer detaljerat vad du kan göra med metoden.

När du delar upp en Java-sträng med split() får du en array med flera strängar. Detta blir returvärdet.

Vad är syntaxen för Java split()?

Den grundläggande syntaxen för Java split() är mycket enkel, men kan utökas med valfria parametrar. Här är den grundläggande versionen:

String[] split(String regex)
java

I det här exemplet kommer utdata att vara i form av en matris. String är strängobjektet. regex är parametern som används för att bestämma var strängen ska delas. Parametern är inte obligatorisk, men rekommenderas.

Den extra valfria parametern limit låter dig ange hur många delsträngar som ska skapas. Dess värde är ett heltal. Om det är noll eller negativt kommer alla delsträngar att inkluderas i utdata. Om du väljer ett positivt värde får du det antalet delsträngar i utdata. Med den extra valfria parametern limit ser syntaxen ut som följer:

String[] split(String regex, int limit)
java

Hur man använder split() med mellanslag som separator

Låt oss titta på några praktiska exempel. Först skapar vi en sträng som innehåller fyra ord: ”Detta är ett exempel”. Sedan delar vi upp strängen med hjälp av split(). Det mest intuitiva sättet att dela upp denna sträng är att använda de befintliga mellanslagen mellan orden. Så här ser det ut 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);
		}
	}
}
java

I det här exemplet initialiseras en strängvariabel x. Därefter används Java split() på strängen. Parametern söker efter mellanslag i strängen och delar upp den på de ställen där den hittar dem. Resultatet sparas sedan i en array som kallas ”output”. Loopen for används för att lista delsträngarna. Java-kommandot System.out.println ger oss följande utdata:

This
is
an
example
java

Hur man använder kommatecken som avgränsare, med och utan mellanslag

Du kan också använda split() i Java med strängar som innehåller listor separerade med kommatecken. Du behöver bara använda ett litet trick, på grund av hur exakt dina instruktioner implementeras i Java. Låt oss först titta på ett exempel utan tricket. Anta att vi har en lista över veckodagarna, separerade med kommatecken. Dessa kommatecken är perfekta separatorer för att mata in i regex. Om vi skapar koden på detta sätt ser den ut som följer:

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);
		}
	}
}
java

I det här exemplet är resultatet inte helt perfekt:

Sunday
 Monday
 Tuesday
 Wednesday
 Thursday
 Friday
 Saturday
java

Resultatet ger oss en tydlig lista över veckodagarna. Men varje värde efter söndag innehåller ett mellanslag före dagen. Eftersom vi bara använde kommatecken som avgränsare, blev mellanslagen kvar under uppdelningen. För att få ett renare resultat bör vi använda både kommatecken och mellanslag som avgränsare. Om vi gör det ser koden ut så här:

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);
		}
	}
}
java

Utmatningen är nu mycket renare:

Sunday
Monday
Tuesday
Wednesday
Thursday
Friday
Saturday
java

Hur man delar upp Java-strängar med siffror

Du kan också använda split() för att dela upp Java-strängar som består av siffror. I vårt exempel tar vi en lång nyckel som delas upp med punkter och kolon. Om vi vill separera siffrorna efter kolonet skulle koden se ut så här:

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);
		}
	}
}
java

Här är resultatet:

194.518.552.1.17
6339
java

Hur man använder split() med gränsparametern

När du delar upp Java-strängar med split() kan du också använda den valfria parametern limit. Parametern limit begränsar antalet delsträngar som skapas. Det finns tre alternativ här: att tilldela den ett värde mindre än 0, 0 eller större än 0.

split() med en gräns mindre än 0

Om du anger ett värde för limit som är mindre än 0 kommer det reguljära uttrycket att tillämpas utan begränsning på hela strängen. Den resulterande matrisen kan ha valfri längd. Den koden kan se ut så här:

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);
		}
	}
}
java

Eftersom det finns ett mellanslag efter det sista ordet “Saturday” kommer arrayen att sluta med en tom sträng. Här är resultatet:

Sunday
Monday
Tuesday
Wednesday
Thursday
Friday
Saturday
java

split() med en gräns på 0

Om du ställer in parametern limit på 0 kommer det reguljära uttrycket återigen att användas så många gånger som möjligt. Längden på arrayen är inte heller begränsad. Men om det sista elementet är en tom sträng kommer det inte att inkluderas i den resulterande arrayen.

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);
		}
	}
}
java

Utmatningen ser ut som ovan, men utan den sista strängen:

Sunday
Monday
Tuesday
Wednesday
Thursday
Friday
Saturday
java

split() med en gräns större än 0

Skillnaden blir tydligare när du anger en gräns som är större än 0. Då avgörs hur många delsträngar som kan matas 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);
		}
	}
}
java

Vi får då ett resultat som skiljer sig avsevärt från ovanstående:

Sunday
Monday
Tuesday, Wednesday, Thursday, Friday, Saturday
java
Gå till huvudmeny