Metodas split() gali būti nau­do­ja­mas eilutėms Java kalboje skaidyti. Jis turi parametrą at­sky­rik­liui ir pa­si­rink­ti­nį parametrą dalinių eilutės skaičiui. Taip pat yra keletas ypatumų, į kuriuos reikia atkreipti dėmesį naudojant šį metodą. Mes pa­aiš­kin­si­me viską, ką reikia žinoti.

Kas yra split()?

Java eilutės jungia simbolius, skait­me­nis ir spe­cia­liuo­sius simbolius. Jos eg­zis­tuo­ja kaip objektai klasėje java.lang ir yra kuriamos bei mo­di­fi­kuo­ja­mos naudojant String klasę. Java prog­ra­ma­vi­mo kalboje taip pat galite atskirti eilutes į skir­tin­gas poeilutes. Java split() naudojama tam tikriems seg­men­tams iš eilutės išgauti arba ją su­skai­dy­ti į atskiras dalis. Toliau pa­teik­si­me išsamesnę in­for­ma­ci­ją apie tai, ką galite daryti naudodami šį metodą.

Skai­dy­da­mi Java eilutę su split(), gausite masyvą su keliomis eilutėmis. Tai tampa grą­ži­na­muo­ju reikšme.

Kokia yra Java split() sintaksė?

Java split() pag­rin­di­nė sintaksė yra labai paprasta, tačiau ją galima išplėsti pa­si­rink­ti­niais pa­ra­met­rais. Čia pa­tei­kia­ma pag­rin­di­nė versija:

String[] split(String regex)
java

Šiame pavyzdyje re­zul­ta­tas bus pateiktas masyvo forma. String yra stygos objektas. regex yra pa­ra­met­ras, nau­do­ja­mas nustatyti, kur stygą reikia padalyti. Pa­ra­met­ras nėra pri­va­lo­mas, bet jo nau­do­ji­mas yra re­ko­men­duo­ja­mas.

Pa­pil­do­mas pa­si­rink­ti­nis pa­ra­met­ras limit leidžia nurodyti, kiek dalinių eilutės turi būti sukurtos. Jo vertė yra sveikasis skaičius. Jei ji yra nulinė arba neigiama, visos dalinės eilutės bus įtrauktos į išvestį. Jei pa­si­rink­si­te teigiamą vertę, išvestyje gausite tą dalinių eilutės skaičių. Su papildomu pa­si­rink­ti­niu parametru limit sintaksė atrodys taip:

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

Kaip naudoti split() su tarpu kaip skyrikliu

Pa­žvel­ki­me į keletą praktinių pavyzdžių. Pir­miau­sia, sukursime eilutę, kurioje yra 4 žodžiai: „Tai yra pavyzdys“. Tada pa­da­lin­si­me eilutę naudodami split(). In­tui­ty­viau­sias būdas padalinti šią eilutę yra naudoti jau esančias tarpą tarp žodžių. Štai kaip tai atrodo kode:

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

Šiame pavyzdyje ini­ci­juo­ja­ma stygos kin­ta­ma­sis x. Tada stygai nau­do­ja­mas Java split(). Pa­ra­met­ras ieško stygos tarpų ir ją suskaido tose vietose, kur juos randa. Re­zul­ta­tas tada iš­sau­go­mas masyve, pa­va­din­ta­me „output“. for kilpa naudojama subst­ren­gų sąrašui sudaryti. Java komanda System.out.println pateikia mums tokį rezultatą:

This
is
an
example
java

Kaip naudoti kablelį kaip skyriklį su tarpais ir be tarpų

Java kalboje taip pat galite naudoti split() su komomis atskirtų sąrašų eilutėmis. Dėl to, kaip tiksliai Java kalboje įgy­ven­di­na­mos jūsų inst­ruk­ci­jos, turėsite naudoti nedidelį triuką. Pir­miau­sia pa­žiū­rė­ki­me pavyzdį be triuko. Tarkime, turime savaitės dienų sąrašą, atskirtą kab­le­liais. Šie kableliai yra puikus at­sky­rik­lis, kurį galima įvesti į regex. Jei kodą nu­sta­ty­si­me taip, jis atrodys taip:

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

Šiame pavyzdyje re­zul­ta­tas nėra visiškai tobulas:

Sunday
 Monday
 Tuesday
 Wednesday
 Thursday
 Friday
 Saturday
java

Re­zul­ta­tas pateikia aiškų savaitės dienų sąrašą. Tačiau kiekviena reikšmė po sek­ma­die­nio turi tarpelį prieš dieną. Kadangi kaip skyriklį naudojome tik kablelį, tarpeliai liko ir po pa­da­li­ji­mo. Norėdami gauti aiškesnį rezultatą, turėtume naudoti tiek kablelį, tiek tarpelį kaip skyriklį. Jei tai pa­da­ry­si­me, kodas atrodys taip:

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

Dabar išvestis yra daug švaresnė:

Sunday
Monday
Tuesday
Wednesday
Thursday
Friday
Saturday
java

Kaip padalyti Java eilutes su skait­me­ni­mis

Taip pat galite naudoti split(), kad pa­da­ly­tu­mė­te iš skaitmenų sudarytus Java styginius. Mūsų pavyzdyje paimsime ilgą raktą, kuris yra padalytas naudojant taškus ir dvitaškį. Jei norime atskirti skait­me­nis po dvitaškio, kodas atrodytų taip:

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

Štai re­zul­ta­tas:

194.518.552.1.17
6339
java

Kaip naudoti split() su ribos parametru

Skai­dy­da­mi Java eilutes su split(), taip pat galite naudoti pa­si­rink­ti­nį limit parametrą. limit pa­ra­met­ras riboja sukurtų eilutės dalių skaičių. Čia yra trys galimybės: priskirti jam mažesnę nei 0, 0 arba didesnę nei 0 vertę.

split() su riba mažesne nei 0

Jei įvesite limit vertę, kuri yra mažesnė nei 0, re­gu­lia­rio­ji išraiška bus taikoma be ap­ri­bo­ji­mų visam strypui. Galutinis masyvas gali būti bet kokio ilgio. Tas kodas gali atrodyti taip:

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

Kadangi po pas­ku­ti­nio žodžio „Saturday“ yra tarpas, masyvas baigsis tuščiu strypu. Štai re­zul­ta­tas:

Sunday
Monday
Tuesday
Wednesday
Thursday
Friday
Saturday
java

split() su riba 0

Jei nu­sta­ty­si­te parametrą limit į 0, re­gu­lia­rio­ji išraiška vėl bus naudojama tiek kartų, kiek įmanoma. Masyvo ilgis taip pat nėra ribojamas. Tačiau jei pas­ku­ti­nis elementas yra tuščia eilutė, ji nebus įtraukta į galutinį masyvą.

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

Re­zul­ta­tas atrodo panašus į pirmiau pateiktą, bet be pas­ku­ti­nės eilutės:

Sunday
Monday
Tuesday
Wednesday
Thursday
Friday
Saturday
java

split() su riba, didesne nei 0

Skirtumas tampa aki­vaiz­des­nis, kai nustatote ribą, didesnę nei 0. Tada ji nustatys, kiek dalinių eilutės gali būti išvestos.

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

Tada gausime rezultatą, kuris žymiai skirsis nuo aukščiau pateiktų:

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