Ako rozdeliť reťazce v Jave
Metóda split() sa dá použiť na rozdelenie reťazcov v Jave. Obsahuje parameter pre oddeľovač a voliteľný parameter pre počet podreťazcov. Pri používaní tejto metódy je potrebné vziať do úvahy aj niektoré špecifiká. Vysvetlíme vám všetko, čo potrebujete vedieť.
Čo je split()?
Java reťazce spájajú znaky, číslice a špeciálne znaky. Existujú ako objekty v triede java.lang a vytvárajú sa a upravujú pomocou triedy String. V programovacom jazyku Java môžete reťazce tiež rozdeliť na rôzne podreťazce. Funkcia split() v Jave sa používa na extrakciu určitých segmentov z reťazca alebo na jeho rozdelenie na jednotlivé časti. Nižšie vám ukážeme podrobnejšie, čo všetko môžete s touto metódou robiť.
Pri rozdelení reťazca Java pomocou split() získate pole s viacerými reťazcami. Toto sa stane vracanou hodnotou.
Aká je syntax Java split()?
Základná syntax Java split() je veľmi jednoduchá, ale dá sa rozšíriť o voliteľné parametre. Tu je základná verzia:
String[] split(String regex)javaV tomto príklade bude výstup vo forme poľa. String je reťazcový objekt. regex je parameter, ktorý sa používa na určenie miesta, kde sa má reťazec rozdeliť. Parameter nie je povinný, ale je odporúčaný.
Dodatočný voliteľný parameter limit vám umožňuje určiť, koľko podreťazcov sa má vytvoriť. Jeho hodnota je celé číslo. Ak je nulová alebo záporná, všetky podreťazce budú zahrnuté do výstupu. Ak zvolíte kladnú hodnotu, vo výstupe sa zobrazí tento počet podreťazcov. S dodatočným voliteľným parametrom limit bude syntax vyzerať takto:
String[] split(String regex, int limit)javaAko používať split() s medzerou ako oddeľovačom
Pozrime sa na niekoľko praktických príkladov. Najskôr vytvoríme reťazec, ktorý obsahuje 4 slová: „Toto je príklad“. Potom reťazec rozdelíme pomocou split(). Najintuitívnejší spôsob rozdelenia tohto reťazca je použitie už existujúcich medzier medzi slovami. Takto to vyzerá v kóde:
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);
}
}
}javaV tomto príklade je inicializovaná reťazcová premenná x. Potom sa na reťazec použije Java split(). Parameter vyhľadáva v reťazci medzery a rozdeľuje ho na miestach, kde ich nájde. Výsledok sa potom uloží do poľa s názvom „output“. Slučka for sa používa na vymenovanie podreťazcov. Príkaz Java System.out.println nám poskytuje nasledujúci výstup:
This
is
an
examplejavaAko používať čiarku ako oddeľovač, s medzerami a bez medzier
V jazyku Java môžete použiť split() aj s reťazcami obsahujúcimi zoznamy oddelené čiarkami. Budete však musieť použiť malý trik, pretože v jazyku Java sú vaše pokyny implementované veľmi presne. Najskôr sa pozrime na príklad bez triku. Predpokladajme, že máme zoznam dní v týždni, oddelených čiarkami. Tieto čiarky sú ideálnym oddeľovačom pre zadanie do regex. Ak nastavíme kód týmto spôsobom, bude vyzerať takto:
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);
}
}
}javaV tomto príklade nie je výstup úplne dokonalý:
Sunday
Monday
Tuesday
Wednesday
Thursday
Friday
SaturdayjavaVýstup nám poskytuje prehľadný zoznam dní v týždni. Každá hodnota po nedeľi však obsahuje medzeru pred dňom. Keďže sme ako oddeľovač použili iba čiarku, medzery zostali v procese rozdeľovania. Aby sme získali prehľadnejší výstup, mali by sme ako oddeľovač použiť čiarku aj medzeru. Ak tak urobíme, kód bude vyzerať nasledovne:
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);
}
}
}javaVýstup je teraz oveľa prehľadnejší:
Sunday
Monday
Tuesday
Wednesday
Thursday
Friday
SaturdayjavaAko rozdeliť reťazce Java s číslicami
Pomocou split() môžete tiež rozdeliť reťazce Java zložené z číslic. V našom príklade použijeme dlhý kľúč, ktorý je rozdelený pomocou bodiek a dvojbodky. Ak chceme oddelit číslice za dvojbodkou, kód bude vyzerať 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);
}
}
}javaTu je výstup:
194.518.552.1.17
6339javaAko používať split() s parametrom limit
Pri delení reťazcov Java pomocou split() môžete použiť aj voliteľný parameter limit. Parameter limit obmedzuje počet vytvorených podreťazcov. K dispozícii sú tri možnosti: priradenie hodnoty menšej ako 0, 0 alebo väčšej ako 0.
split() s limitom menším ako 0
Ak zadáte hodnotu limit, ktorá je menšia ako 0, regulárny výraz sa uplatní bez obmedzenia na celý reťazec. Výsledné pole môže mať ľubovoľnú dĺžku. Takýto kód môže vyzerať nasledovne:
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);
}
}
}javaKeďže za posledným slovom „Saturday“ je medzera, pole bude končiť prázdnym reťazcom. Tu je výstup:
Sunday
Monday
Tuesday
Wednesday
Thursday
Friday
Saturdayjavasplit() s limitom 0
Ak nastavíte parameter limit na hodnotu 0, regulárny výraz sa opäť použije toľkokrát, koľkokrát to bude možné. Dĺžka poľa nie je nijako obmedzená. Ak je však posledný prvok prázdny reťazec, nebude zahrnutý do výsledného poľa.
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);
}
}
}javaVýstup vyzerá podobne ako vyššie, ale bez posledného reťazca:
Sunday
Monday
Tuesday
Wednesday
Thursday
Friday
Saturdayjavasplit() s limitom väčším ako 0
Rozdiel je zreteľnejší, ak nastavíte limit väčší ako 0. V takom prípade sa určí, koľko podreťazcov môže byť vygenerovaných.
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);
}
}
}javaPotom dostaneme výstup, ktorý sa výrazne líši od tých vyššie uvedených:
Sunday
Monday
Tuesday, Wednesday, Thursday, Friday, Saturdayjava