De methode split() kan worden gebruikt om strings in Java te splitsen. Deze bevat een parameter voor het schei­dings­te­ken en een optionele parameter voor het aantal sub­strings. Er zijn ook enkele bij­zon­der­he­den waar u rekening mee moet houden bij het gebruik van de methode. We leggen u alles uit wat u moet weten.

Wat is split()?

Java-strings voegen tekens, cijfers en speciale tekens samen. Ze bestaan als objecten in de klasse java.lang en worden aan­ge­maakt en gewijzigd met de klasse String. In de pro­gram­meer­taal Java kunt u strings ook op­split­sen in ver­schil­len­de sub­strings. De methode split() van Java wordt gebruikt om bepaalde segmenten uit een string te ex­tra­he­ren of om deze in af­zon­der­lij­ke delen op te splitsen. Hieronder laten we u in meer detail zien wat u met deze methode kunt doen.

Wanneer je een Java-string splitst met split(), krijg je een array met ver­schil­len­de strings. Dit wordt de re­tour­waar­de.

Wat is de syntaxis van Java split()?

De ba­sis­syn­taxis van Java split() is heel eenvoudig, maar kan worden uit­ge­breid met optionele pa­ra­me­ters. Hier is de ba­sis­ver­sie:

String[] split(String regex)
java

In dit voorbeeld zal de uitvoer de vorm van een array hebben. String is het strin­g­ob­ject. regex is de parameter die wordt gebruikt om te bepalen waar de string moet worden gesplitst. De parameter is niet verplicht, maar wordt wel aan­be­vo­len.

Met de extra optionele parameter limit kunt u aangeven hoeveel sub­strings er moeten worden gemaakt. De waarde ervan is een geheel getal. Als deze nul of negatief is, worden alle sub­strings in de uitvoer opgenomen. Als u een positieve waarde kiest, krijgt u dat aantal sub­strings in de uitvoer. Met de extra optionele parameter limit ziet de syntaxis er als volgt uit:

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

Hoe gebruik je split() met een spatie als schei­dings­te­ken?

Laten we eens kijken naar enkele prak­ti­sche voor­beel­den. Eerst maken we een string met vier woorden: ‘Dit is een voorbeeld’. Ver­vol­gens splitsen we de string op met behulp van split(). De meest in­tu­ï­tie­ve manier om deze string op te splitsen is door gebruik te maken van de reeds bestaande spaties tussen de woorden. Zo gebeurt dat in de code:

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

In dit voorbeeld wordt een string­va­ri­a­be­le x ge­ï­ni­ti­a­li­seerd. Ver­vol­gens wordt Java’s split() op de string toegepast. De parameter zoekt naar spaties in de string en splitst deze op de plaatsen waar hij spaties vindt. Het resultaat wordt ver­vol­gens op­ge­sla­gen in een array met de naam ‘output’. De for wordt gebruikt om de substring te weergeven. Het Java-commando System.out.println geeft ons de volgende uitvoer:

This
is
an
example
java

Hoe gebruik je een komma als schei­dings­te­ken, met en zonder spaties

Je kunt split() ook gebruiken in Java met strings die lijsten bevatten die door komma’s worden ge­schei­den. Je moet alleen een klein trucje gebruiken, vanwege de nauw­keu­rig­heid waarmee je in­struc­ties in Java worden ge­ïm­ple­men­teerd. Laten we eerst eens kijken naar een voorbeeld zonder het trucje. Stel dat we een lijst hebben met de dagen van de week, ge­schei­den door komma’s. Deze komma’s zijn de perfecte schei­dings­te­kens om in regex in te voeren. Als we de code op deze manier opstellen, ziet deze er als volgt uit:

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

In dit voorbeeld is de uitvoer niet helemaal perfect:

Sunday
 Monday
 Tuesday
 Wednesday
 Thursday
 Friday
 Saturday
java

De uitvoer geeft ons een dui­de­lij­ke lijst van de dagen van de week. Elke waarde na zondag bevat echter een spatie voor de dag. Omdat we alleen een komma als schei­dings­te­ken hebben gebruikt, zijn de spaties tijdens het splitsen blijven staan. Om een nettere uitvoer te krijgen, moeten we zowel een komma als een spatie als schei­dings­te­ken gebruiken. Als we dat doen, ziet de code er als volgt uit:

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

De uitvoer is nu veel over­zich­te­lij­ker:

Sunday
Monday
Tuesday
Wednesday
Thursday
Friday
Saturday
java

Hoe Java-strings met cijfers splitsen

Je kunt split() ook gebruiken om Java-strings bestaande uit cijfers op te splitsen. In ons voorbeeld nemen we een lange sleutel die is opgedeeld met punten en een dubbele punt. Als we de cijfers na de dubbele punt willen scheiden, ziet de code er als volgt uit:

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

Dit is de uitvoer:

194.518.552.1.17
6339
java

Hoe gebruik je split() met de li­miet­pa­ra­me­ter?

Bij het splitsen van Java-strings met split() kunt u ook de optionele parameter limit gebruiken. De parameter limit beperkt het aantal substring dat wordt aan­ge­maakt. Hier zijn drie opties: een waarde kleiner dan 0, 0 of groter dan 0 toekennen.

split() met een limiet kleiner dan 0

Als u voor limit een waarde invoert die kleiner is dan 0, wordt de reguliere expressie zonder beperking op de hele te­ken­reeks toegepast. De re­sul­te­ren­de array kan elke lengte hebben. Die code zou er als volgt uit kunnen zien:

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

Aangezien er een spatie staat na het laatste woord ‘Saturday’, eindigt de array met een lege string. Dit is de uitvoer:

Sunday
Monday
Tuesday
Wednesday
Thursday
Friday
Saturday
java

split() met een limiet van 0

Als u de parameter limit op 0 instelt, wordt de reguliere expressie weer zo vaak mogelijk gebruikt. De lengte van de array is ook niet beperkt. Maar als het laatste element een lege te­ken­reeks is, wordt deze niet opgenomen in de re­sul­te­ren­de array.

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

De uitvoer ziet er ongeveer hetzelfde uit als hierboven, maar dan zonder de laatste string:

Sunday
Monday
Tuesday
Wednesday
Thursday
Friday
Saturday
java

split() met een limiet groter dan 0

Het verschil wordt dui­de­lij­ker wanneer u een limiet instelt die groter is dan 0. Dan bepaalt het hoeveel sub­strings kunnen worden uit­ge­voerd.

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

We krijgen dan een uitvoer die aan­zien­lijk verschilt van de bo­ven­staan­de uitvoer:

Sunday
Monday
Tuesday, Wednesday, Thursday, Friday, Saturday
java
Ga naar hoofdmenu