Hogyan lehet karakterláncokat felosztani Java-ban?
A split() módszer használható karakterláncok felosztására Java-ban. Tartalmaz egy paramétert a szeparátorhoz és egy opcionális paramétert az alkaraktersorozatok számához. A módszer használatakor néhány sajátosságot is figyelembe kell venni. Elmagyarázzuk mindazt, amit tudnia kell.
Mi az a split()?
A Java karakterláncok karaktereket, számokat és speciális karaktereket fűznek össze. Ezek a java.lang osztályban objektumokként léteznek, és a String osztály segítségével hozhatók létre és módosíthatók. A Java programozási nyelvben a karakterláncokat különböző alkaraktersorozatokra is fel lehet bontani. A Java split() metódusával bizonyos szegmenseket lehet kivonni egy karakterláncból, vagy azt egyedi részekre fel lehet bontani. Az alábbiakban részletesebben bemutatjuk, hogy mit lehet tenni ezzel a metódussal.
Ha egy Java karakterláncot split() segítségével felosztunk, akkor több karakterláncot tartalmazó tömböt kapunk. Ez lesz a visszatérési érték.
Mi a Java split() szintaxisa?
A Java split() alapvető szintaxisa nagyon egyszerű, de opcionális paraméterekkel bővíthető. Íme az alapváltozat:
String[] split(String regex)javaEbben a példában a kimenet tömb formájában lesz. String a karakterlánc objektum. regex az a paraméter, amely meghatározza, hol kell felosztani a karakterláncot. A paraméter nem kötelező, de ajánlott.
A kiegészítő opcionális limit paraméterrel megadhatja, hogy hány alkaraktersorozatot szeretne létrehozni. Értéke egész szám. Ha nulla vagy negatív, akkor az összes alkaraktersorozat bekerül a kimenetbe. Ha pozitív értéket választ, akkor a kimenetben annyi alkaraktersorozat lesz, amennyit megadott. A kiegészítő opcionális limit paraméterrel a szintaxis a következő lesz:
String[] split(String regex, int limit)javaHogyan használjuk split() szóközzel elválasztva?
Nézzünk meg néhány gyakorlati példát. Először létrehozunk egy karakterláncot, amely 4 szót tartalmaz: „Ez egy példa”. Ezután split() segítségével felosztjuk a karakterláncot. A karakterlánc felosztásának leg intuitívabb módja a szavak között már meglévő szóközök használata. Íme, hogyan történik ez a kódban:
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);
}
}
}javaEbben a példában egy x nevű karakterlánc változót inicializálunk. Ezután a Java split() parancsot alkalmazzuk a karakterláncra. A paraméter a karakterláncban a szóközöket keresi, és azokat a helyeken osztja szét, ahol megtalálja őket. Az eredményt ezután egy „output” nevű tömbben tároljuk. A for ciklust az alkaraktersorozatok felsorolásához használjuk. A Java System.out.println parancs a következő kimenetet adja:
This
is
an
examplejavaHogyan használjuk a vesszőt elválasztóként, szóközökkel és szóközök nélkül?
A Java nyelvben split() olyan karakterláncokkal is használhatja, amelyek vesszővel elválasztott listákat tartalmaznak. Ehhez csak egy kis trükköt kell alkalmaznia, mivel a Java nyelvben az utasítások nagyon pontosan kerülnek végrehajtásra. Először nézzünk meg egy példát a trükk nélkül. Tegyük fel, hogy van egy lista a hét napjairól, amelyeket vessző választ el egymástól. Ezek a vesszők tökéletes elválasztóként szolgálnak regex-ba való bevitelhez. Ha így állítjuk be a kódot, az a következőképpen fog kinézni:
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);
}
}
}javaEbben a példában a kimenet nem teljesen tökéletes:
Sunday
Monday
Tuesday
Wednesday
Thursday
Friday
SaturdayjavaA kimenet egy világos listát ad a hét napjairól. Azonban minden vasárnap utáni érték előtt szóköz található. Mivel csak vesszőt használtunk elválasztóként, a szóközök a felosztás során ott maradtak. A tisztább kimenet érdekében vesszőt és szóközöt is elválasztóként kell használnunk. Ha így teszünk, a kód a következőképpen fog kinézni:
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);
}
}
}javaA kimenet most már sokkal tisztább:
Sunday
Monday
Tuesday
Wednesday
Thursday
Friday
SaturdayjavaHogyan lehet számokkal elválasztani a Java karakterláncokat?
split() használhatja számokból álló Java karakterláncok felosztására is. Példánkban egy hosszú kulcsot veszünk, amelyet pontok és kettőspontok választanak el egymástól. Ha a kettőspont után álló számokat szeretnénk elválasztani, a kód így fog kinézni:
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);
}
}
}javaItt van az eredmény:
194.518.552.1.17
6339javaA split() használata a limit paraméterrel
A Java karakterláncok split() felosztásakor az opcionális limit paramétert is használhatja. A limit paraméter korlátozza a létrehozott alkaraktersorozatok számát. Itt három lehetőség közül választhat: 0-nál kisebb, 0 vagy 0-nál nagyobb értéket rendelhet hozzá.
split(), amelynek határa kisebb, mint 0
Ha limit értékre 0-nál kisebb értéket ad meg, akkor a reguláris kifejezés korlátozás nélkül alkalmazásra kerül az egész karakterláncra. Az eredményül kapott tömb hossza tetszőleges lehet. A kód a következőképpen nézhet ki:
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);
}
}
}javaMivel az utolsó szó, „Saturday” után szóköz van, a tömb egy üres karakterlánccal végződik. Íme a kimenet:
Sunday
Monday
Tuesday
Wednesday
Thursday
Friday
Saturdayjavasplit(), 0-as határértékkel
Ha a limit paramétert 0-ra állítja, a reguláris kifejezés ismét a lehető legtöbb alkalommal kerül felhasználásra. A tömb hossza sem korlátozott. Ha azonban az utolsó elem egy üres karakterlánc, akkor az nem kerül be a kapott tömbbe.
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);
}
}
}javaA kimenet hasonló a fentihez, de a végső karakterlánc nélkül:
Sunday
Monday
Tuesday
Wednesday
Thursday
Friday
Saturdayjavasplit(), ahol a határérték nagyobb, mint 0
A különbség még nyilvánvalóbbá válik, ha 0-nál nagyobb értéket állít be. Ez meghatározza, hogy hány alkaraktersorozatot lehet kinyomtatni.
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);
}
}
}javaEkkor a fenti eredményektől jelentősen eltérő eredményt kapunk:
Sunday
Monday
Tuesday, Wednesday, Thursday, Friday, Saturdayjava