Metoda split() se lahko uporabi za raz­de­li­tev nizov v Javi. Vsebuje parameter za ločilo in neobvezni parameter za število podnizov. Pri uporabi metode je treba upo­šte­va­ti tudi nekatere po­seb­no­sti. Razložimo vam vse, kar morate vedeti.

Kaj je split()?

Java nizi po­ve­zu­je­jo znake, številke in posebne znake. Obstajajo kot objekti v razredu java.lang in se ustvar­ja­jo in spre­mi­nja­jo s pomočjo razreda String. V pro­gram­skem jeziku Java lahko nize tudi razdelite na različne podnize. Java split() se uporablja za izločanje določenih segmentov iz niza ali za raz­de­li­tev niza na posamezne dele. Spodaj vam bomo po­drob­ne­je pokazali, kaj lahko storite s to metodo.

Ko razdelite niz Java z split(), dobite niz z več nizi. To postane vrnjena vrednost.

Kakšna je sintaksa Jave split()?

Osnovna sintaksa Java split() je zelo preprosta, vendar jo je mogoče razširiti z izbirnimi parametri. Tukaj je osnovna različica:

String[] split(String regex)
java

V tem primeru bo izhod v obliki niza. String je nizovni objekt. regex je parameter, ki se uporablja za določitev, kje naj se niz razdeli. Parameter ni obvezen, vendar je pri­po­ro­čljiv.

Dodatni izbirni parameter limit omogoča določitev števila podnizov, ki naj se ustvarijo. Njegova vrednost je celo število. Če je enaka nič ali negativna, bodo v izhod vključeni vsi podnizi. Če izberete pozitivno vrednost, boste v izhodu dobili to število podnizov. Z dodatnim izbirnim pa­ra­me­trom limit bo sintaksa izgledala takole:

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

Kako upo­ra­blja­ti split() s pre­sled­kom kot ločilom

Poglejmo nekaj prak­tič­nih primerov. Najprej bomo ustvarili niz, ki vsebuje 4 besede: »To je primer«. Nato bomo niz razdelili z uporabo split(). Najbolj in­tu­i­ti­ven način za raz­de­li­tev tega niza je uporaba že ob­sto­je­čih pre­sled­kov med besedami. Tako to poteka v kodi:

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 tem primeru je ini­ci­a­li­zi­ra­na nizovna spre­men­ljiv­ka x. Nato se na nizu uporabi Java split(). Parameter poišče presledke v nizu in ga razdeli na mestih, kjer jih najde. Rezultat se nato shrani v niz z imenom »output«. Zanko for se uporabi za navedbo podnizov. Java ukaz System.out.println nam da naslednji izpis:

This
is
an
example
java

Kako upo­ra­blja­ti vejico kot ločilo, z in brez pre­sled­kov

V Javi lahko uporabite tudi split() za nize, ki vsebujejo sezname, ločene z vejicami. Zaradi na­tanč­no­sti izvajanja navodil v Javi boste morali uporabiti majhen trik. Najprej si oglejmo primer brez trika. Recimo, da imamo seznam dni v tednu, ločenih z vejicami. Te vejice so odličen lo­če­val­nik za vnos v regex. Če kodo nastavimo na ta način, bo izgledala takole:

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 tem primeru izhod ni ravno popoln:

Sunday
 Monday
 Tuesday
 Wednesday
 Thursday
 Friday
 Saturday
java

Izpis nam daje jasen seznam dni v tednu. Vendar pa vsaka vrednost po nedelji vsebuje presledek pred dnevom. Ker smo kot ločilo uporabili samo vejico, so presledki ostali tam v procesu raz­de­lje­va­nja. Da bi dobili čistejši izpis, moramo kot ločilo uporabiti vejico in presledek. Če to storimo, bo koda izgledala takole:

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

Izhod je zdaj veliko čistejši:

Sunday
Monday
Tuesday
Wednesday
Thursday
Friday
Saturday
java

Kako razdeliti Java nize s šte­vil­ka­mi

split() lahko uporabite tudi za raz­de­li­tev Java nizov, se­sta­vlje­nih iz številk. V našem primeru bomo vzeli dolg ključ, ki je razdeljen s piki in dvopičjem. Če želimo ločiti številke za dvopičjem, bi koda izgledala takole:

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

Tukaj je izhod:

194.518.552.1.17
6339
java

Kako upo­ra­blja­ti split() z ome­ji­tve­nim pa­ra­me­trom

Pri raz­de­lje­va­nju Java nizov z split() lahko uporabite tudi neobvezni parameter limit. Parameter limit omejuje število ustvar­je­nih podnizov. Na voljo so tri možnosti: dodelitev vrednosti manjše od 0, 0 ali večje od 0.

split() z ome­ji­tvi­jo manj kot 0

Če za limit vnesete vrednost, ki je manjša od 0, se bo redni izraz uporabil brez omejitve na celoten niz. Rezultati niz lahko ima poljubno dolžino. Ta koda bi lahko izgledala takole:

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

Ker je za zadnjo besedo „sobota“ presledek, se bo niz končal s prazno vrstico. Tukaj je izpis:

Sunday
Monday
Tuesday
Wednesday
Thursday
Friday
Saturday
java

split() z ome­ji­tvi­jo 0

Če nastavite parameter limit na 0, se bo redni izraz ponovno uporabil to­li­ko­krat, kolikor je mogoče. Dolžina niza ni omejena. Če pa je zadnji element prazen niz, ne bo vključen v končni niz.

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

Izhod je podoben zgornjemu, vendar brez zadnjega niza:

Sunday
Monday
Tuesday
Wednesday
Thursday
Friday
Saturday
java

split() z ome­ji­tvi­jo večjo od 0

Razlika postane bolj očitna, ko nastavite omejitev, večjo od 0. Takrat bo določila, koliko podnizov se lahko izpiše.

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

Tako bomo dobili izhod, ki se znatno razlikuje od zgornjih:

Sunday
Monday
Tuesday, Wednesday, Thursday, Friday, Saturday
java
Go to Main Menu