Metoda split() může být použita k rozdělení řetězců v Javě. Obsahuje parametr pro oddělovač a volitelný parametr pro počet podřetězců. Při používání této metody je také třeba vzít v úvahu některé zvláštnosti. Vysvětlíme vám vše, co potřebujete vědět.

Co je split()?

Řetězce v Javě spojují znaky, číslice a speciální znaky. Existují jako objekty ve třídě java.lang a jsou vytvářeny a upravovány pomocí třídy String. V programovacím jazyce Java můžete také rozdělit řetězce na různé podřetězce. Metoda split() v Javě se používá k extrakci určitých segmentů z řetězce nebo k jeho rozdělení na jednotlivé části. Níže vám ukážeme podrobněji, co můžete s touto metodou dělat.

Při rozdělení řetězce Java pomocí split() získáte pole s několika řetězci. To se stane návratovou hodnotou.

Jaká je syntaxe jazyka Java split()?

Základní syntaxe jazyka Java split() je velmi jednoduchá, ale lze ji rozšířit o volitelné parametry. Zde je základní verze:

String[] split(String regex)
java

V tomto příkladu bude výstup ve formě pole. String je objekt řetězce. regex je parametr, který se používá k určení, kde má být řetězec rozdělen. Parametr není povinný, ale je doporučený.

Dodatečný volitelný parametr limit umožňuje určit, kolik podřetězců má být vytvořeno. Jeho hodnota je celé číslo. Pokud je nulová nebo záporná, budou do výstupu zahrnuty všechny podřetězce. Pokud zvolíte kladnou hodnotu, ve výstupu se objeví daný počet podřetězců. S dodatečným volitelným parametrem limit bude syntaxe vypadat následovně:

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

Jak používat split() s mezerou jako oddělovačem

Podívejme se na několik praktických příkladů. Nejprve vytvoříme řetězec obsahující 4 slova: „This is an example“. Poté tento řetězec rozdělíme pomocí split(). Nejintenzivnější způsob, jak tento řetězec rozdělit, je použít již existující mezery mezi slovy. Takto to vypadá v kódu:

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

V tomto příkladu je inicializována řetězcová proměnná x. Poté je na řetězec použit split() Java split(). Parametr prohledá řetězec pro mezery a rozdělí jej na místech, kde je najde. Výsledek je poté uložen do pole s názvem „output“. Smyčka for se používá k vypsání podřetězců. Příkaz Java System.out.println nám dá následující výstup:

This
is
an
example
java

Jak používat čárku jako oddělovač, s mezerami a bez mezer

V Javě můžete také použít split() s řetězci obsahujícími seznamy oddělené čárkami. Budete jen muset použít malý trik, protože vaše pokyny jsou v Javě implementovány velmi přesně. Nejprve se podívejme na příklad bez triku. Řekněme, že máme seznam dnů v týdnu oddělených čárkami. Tyto čárky jsou ideálním oddělovačem pro zadání do regex. Pokud nastavíme kód tímto způsobem, bude vypadat následovně:

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

V tomto příkladu není výstup zcela dokonalý:

Sunday
 Monday
 Tuesday
 Wednesday
 Thursday
 Friday
 Saturday
java

Výstup nám poskytuje přehledný seznam dnů v týdnu. Každá hodnota po neděli však obsahuje mezeru před názvem dne. Protože jsme jako oddělovač použili pouze čárku, mezery zůstaly v procesu rozdělení zachovány. Abychom získali čistější výstup, měli bychom jako oddělovač použít čárku i mezeru. Pokud tak učiníme, kód bude vypadat následovně:

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

Výstup je nyní mnohem čistší:

Sunday
Monday
Tuesday
Wednesday
Thursday
Friday
Saturday
java

Jak rozdělit řetězce Java s číslicemi

split() můžete také použít k rozdělení řetězců Java složených z číslic. V našem příkladu použijeme dlouhý klíč, který je rozdělen pomocí teček a dvojtečky. Pokud chceme oddělit číslice za dvojtečkou, bude kód vypadat takto:

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

Zde je výstup:

194.518.552.1.17
6339
java

Jak používat split() s parametrem limit

Při dělení řetězců Java pomocí split() můžete také použít volitelný parametr limit. Parametr limit omezuje počet vytvořených podřetězců. K dispozici jsou tři možnosti: přiřadit mu hodnotu menší než 0, 0 nebo větší než 0.

split() s limitem menším než 0

Pokud zadáte hodnotu limit menší než 0, bude regulární výraz aplikován bez omezení na celý řetězec. Výsledné pole může mít libovolnou délku. Tento kód může vypadat následovně:

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

Protože za posledním slovem „Saturday“ je mezera, pole bude končit prázdným řetězcem. Zde je výstup:

Sunday
Monday
Tuesday
Wednesday
Thursday
Friday
Saturday
java

split() s limitem 0

Pokud nastavíte parametr limit na hodnotu 0, bude regulární výraz opět použit tolikrát, kolikrát to bude možné. Délka pole také není omezena. Pokud je však poslední prvek prázdný řetězec, nebude zahrnut do výsledného pole.

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

Výstup vypadá podobně jako výše, ale bez posledního řetězce:

Sunday
Monday
Tuesday
Wednesday
Thursday
Friday
Saturday
java

split() s limitem větším než 0

Rozdíl je zřetelnější, když nastavíte limit větší než 0. Poté se určí, kolik podřetězců lze vypsat.

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

Poté získáme výstup, který se výrazně liší od výše uvedených:

Sunday
Monday
Tuesday, Wednesday, Thursday, Friday, Saturday
java
Přejít do hlavního menu