Podział ciągów Java ()

Metoda Java String split () dzieli ciąg według określonego wyrażenia regularnego i zwraca tablicę podciągów.

Składnia split()metody łańcuchowej jest następująca:

 string.split(String regex, int limit)

Tutaj string jest obiektem Stringklasy.

split () Parametry

Metoda łańcuchowa split()może przyjmować dwa parametry:

  • regex - ciąg jest podzielony na tym wyrażeniu regularnym (może to być ciąg znaków)
  • limit (opcjonalnie) - kontroluje liczbę wynikowych podciągów

Jeśli limitparametr nie zostanie przekazany, split()zwraca wszystkie możliwe podciągi.

split () Wartość zwracana

  • zwraca tablicę podciągów

Uwaga: Jeśli przekazane wyrażenie regularne split()jest nieprawidłowe, split()metoda zgłasza PatternSyntaxExpressionwyjątek.

Przykład 1: split () Bez ograniczeń Parametr

 // importing Arrays to convert array to string // used for printing arrays import java.util.Arrays; class Main ( public static void main(String() args) ( String vowels = "a::b::c::d:e"; // splitting the string at "::" // storing the result in an array of strings String() result = vowels.split("::"); // converting array to string and printing it System.out.println("result = " + Arrays.toString(result)); ) )

Wynik

 wynik = (a, b, c, d: e)

Tutaj podzieliliśmy ciąg na ::. Ponieważ limitparametr nie jest przekazywany, zwrócona tablica zawiera wszystkie podciągi.

split () Z limitem Parametr

  • Jeśli limitparametr ma wartość 0 lub wartość ujemną, split()zwraca tablicę zawierającą wszystkie podciągi.
  • Jeśli limitparametr jest dodatni (powiedzmy n), split()zwraca maksymalną liczbę npodciągów.

Przykład 2: split () With limit Parametr

 // importing Arrays to convert array to string import java.util.Arrays; class Main ( public static void main(String() args) ( String vowels = "a:bc:de:fg:h"; // splitting array at ":" // limit is -2; array contins all substrings String() result = vowels.split(":", -2); System.out.println("result when limit is -2 = " + Arrays.toString(result)); // limit is 0; array contains all substrings result = vowels.split(":", 0); System.out.println("result when limit is 0 = " + Arrays.toString(result)); // limit is 2; array contains a maximum of 2 substrings result = vowels.split(":", 2); System.out.println("result when limit is 2 = " + Arrays.toString(result)); // limit is 4; array contains a maximum of 4 substrings result = vowels.split(":", 4); System.out.println("result when limit is 4 = " + Arrays.toString(result)); // limit is 10; array contains a maximum of 10 substrings result = vowels.split(":", 10); System.out.println("result when limit is 10 = " + Arrays.toString(result)); ) )

Wynik

 wynik, gdy limit wynosi -2 = (a, bc, de, fg, h) wynik, gdy limit wynosi 0 = (a, bc, de, fg, h) wynik, gdy limit wynosi 2 = (a, bc: de: fg: h) wynik, gdy limit wynosi 4 = (a, bc, de, fg: h) wynik, gdy limit wynosi 10 = (a, bc, de, fg, h)

Uwaga: split () metoda wykonuje regex jako pierwszy argument. Jeśli trzeba używać znaków specjalnych, takich jak: , |, ^, *, +etc, trzeba uciec tych znaków. Na przykład musimy użyć \+do podziału na +.

Przykład 3: split () przy znaku +

 // importing Arrays to convert array to string // used for printing arrays import java.util.Arrays; class Main ( public static void main(String() args) ( String vowels = "a+e+f"; // splitting the string at "+" String() result = vowels.split("\+"); // converting array to string and printing it System.out.println("result = " + Arrays.toString(result)); ) )

Wynik

 wynik = (a, e, f)

Tutaj, aby podzielić ciąg na +, użyliśmy \+. To dlatego, że +jest to znak specjalny (ma specjalne znaczenie w wyrażeniach regularnych).

Interesujące artykuły...