Java StringBuilder

Java StringBuilder
Obiekt ciągów, utworzony z klasy Java String, jest obiektem, który otacza literał string. Problem z obiektem strunowym w Javie polega na tym, że dosłownych znaków nie można zmodyfikować. Klasa StringBuffer przychodzi na ratunek. Dosłowność dla buffera String jest zmienna. StringBuffer ma również tę zaletę, że jest bezpieczny dla wątków (bezpieczny do użycia przez wiele wątków). Jednak operacje z BUFFER STRING mogą być stosunkowo długie. Istnieje więc prostsza forma klasy StringBuffer, która jest klasą StringBuilder. StringBuilder nie jest bezpieczny. Klasa jest w Javie.Lang.* pakiet i nie wymaga importu. W tym artykule wyjaśnia podstawy StringBuilder.

Konstrukcja StringBuilder

Ta klasa ma cztery przeciążone konstruktory. Trzy są tutaj wyjaśnione.

public StringBuilder ()

Ten konstruktor tworzy pusty obiekt StringBuilder, jak pokazano w poniższej instrukcji:

StringBuilder st = nowy StringBuilder ();

Znaki można następnie dołączyć do obiektu StringBuilder, ST.

Publiczne StringBuilder (Charseence SEQ)

Ten konstruktor bierze literał ciągów jako argument, jak pokazano w następstwie segmentu kodu:

StringBuilder st = nowy StringBuilder („To jest tancerz.");
System.na zewnątrz.println (st);

Wyjście to:

To jest tancerz.

Public StringBuilder (String Str)

Ta metoda konstruktora bierze identyfikator ciągów jako argument, jak pokazano w poniższym segmencie kodu:

StringBuilder st = nowy StringBuilder („To jest tancerz.");
StringBuilder ST1 = nowy StringBuilder (ST);
System.na zewnątrz.println (ST1);

Wyjście to:

To jest tancerz.

Metody StringBuilder

Public StringBuilder Depend (Char C)

Dołącza to znak do obiektu StringBuilder, który może być pusty. Poniższy segment kodu to ilustruje:

StringBuilder st = nowy StringBuilder ();
St.append („t”); St.append („h”); St.append („i”); St.append ('s'); St.dodać(");
St.append („i”); St.append ('s');
System.na zewnątrz.println (st);

Wyjście to:

To jest

Public StringBuilder Depend (Charseence S)

To dołącza sekwencję strun (literał string). Poniższy segment kodu to ilustruje:

StringBuilder st = nowy StringBuilder („to jest”);
St.append („the”);
System.na zewnątrz.println (st);

Wyjście to:

"To jest "

Public StringBuilder Depend (String Str)

To używa identyfikatora ciągów do dołączania. Poniższy segment kodu to ilustruje:

String strr = "tancerz";
StringBuilder st = nowy StringBuilder („to jest”);
St.append (strr);
System.na zewnątrz.println (st);

Wyjście to:

To jest tancerz

public int Long ()

Ta metoda zwraca liczbę znaków w ciągu, jak pokazano w następującym segmencie kodu:

StringBuilder st = nowy StringBuilder („To jest tancerz.");
int sz = st.długość();
System.na zewnątrz.println (SZ);

Wyjście to:

19

Długość wynosi 19, co oznacza, że ​​jest 19 znaków.

Public Charat (int indeks)

Ta metoda zwraca kopię Char w indeksie. Liczenie indeksu zaczyna się od 0. For pętka w następującym segmencie kodu zwraca wszystkie znaki obiektu StringBuilder:

StringBuilder sb = nowy StringBuilder („To jest tancerz.");
dla (int i = 0; ichar ch = sb.Charat (i);
System.na zewnątrz.druk (ch);

System.na zewnątrz.println ();

Wyjście to:

To jest tancerz.

public void setCarat (int indeks, char ch)

Znak w pozycji indeksu można zmienić. Liczenie indeksu zaczyna się od 0. Poniższy segment kodu używa tej metody do zmiany, „ja” w „This” na „u”, tworząc „w ten sposób”:

StringBuilder sb = nowy StringBuilder („To jest tancerz.");
sb.setCarat (2, „u”);
System.na zewnątrz.println (sb);

Wyjście to:

Zatem jest tancerz.

public void setLength (int newLength)

Ta metoda zmienia długość łańcucha. Jeśli dana długość jest mniejsza niż w oryginalnym ciągu, występuje obcięcie. Liczenie nowości zaczyna się od 1. Poniższy segment kodu ścina ciąg na długość 7:

StringBuilder sb = nowy StringBuilder („To jest tancerz.");
sb.SetLength (7);
System.na zewnątrz.println (sb);

Wyjście to:

To jest

Public Int Indexof (String Substr)

Liczenie indeksu zaczyna się od 0. Zwraca to wskaźnik startowy pierwszego wystąpienia podłoża podanego jako argument. Poniższy kod jest ilustracją:

StringBuilder sb = nowy StringBuilder („To jest tancerz.");
String Sst = "IS";
int ret = sb.indexof (SST);
System.na zewnątrz.println (ret);

Wyjście to 2, ponieważ „IS” w „This”.

Public Int Indexof (String str, int fromIndex)

Liczenie indeksu zaczyna się od 0. Zwraca to pierwsze wystąpienie podłoża podanego jako pierwszy argument, zaczynając od wartości drugiego argumentu. Poniższy kod to ilustruje:

StringBuilder sb = nowy StringBuilder („To jest tancerz.");
String Sst = "IS";
int ret = sb.indexof (SST);
System.na zewnątrz.println (ret);

Wyjście to 12.

public StringBuilder DeleTecharat (INT INDEX)

To usuwa określoną postać. W poniższym segmencie kodu usuwane są znaki na indeksie 8, indeks 9, indeks 10 i indeks 11. Zarówno stare, jak i nowe struny są zmieniane jednocześnie za każdym razem.

StringBuilder sb = nowy StringBuilder („To jest tancerz.");
sb.deletecharat (8); sb.deletecharat (8); sb.deletecharat (8);
StringBuilder ret = sb.deletecharat (8);
System.na zewnątrz.println (sb); System.na zewnątrz.println (ret);

Wyjście to:

To jest tancerz.
To jest tancerz.

public StringBuilder Delete (int start, int end)

W poprzednim kodzie, gdy znak w indeksie 8 został usunięty, następny stał się znakiem przy indeksie 8. Zamiast usuwać jeden po drugim, znaki od indeksu 8 do indeksu 11 można usunąć w jednym poleceniu, jak pokazuje następujący kod:

StringBuilder sb = nowy StringBuilder („To jest tancerz.");
StringBuilder ret = sb.Usuń (8, 12);
System.na zewnątrz.println (sb); System.na zewnątrz.println (ret);

Wyjście to:

To jest tancerz.
To jest tancerz.

Zauważ, że indeks końcowy metody (12) nie jest uwzględniony w zakresie efektywnym.

public StringBuilder Wymień (int start, int end, string str)

Podpisanie w oryginalnym ciągu można zastąpić innym ciągiem, Str, który może być dłuższy lub krótszy niż oryginalny ciąg. Poniższy segment kodu to ilustruje:

StringBuilder sb = nowy StringBuilder („To jest tancerz.");
StringBuilder ret = sb.Wymień (0, 7, „TUTAJ:”);
System.na zewnątrz.println (sb); System.na zewnątrz.println (ret);

Wyjście to:

Tutaj: tancerz.
Tutaj: tancerz.

Ponownie wskaźnik końcowy jest o jeden wyższy niż rzeczywisty koniec zakresu.

Public StringBuilder Insert (int offset, char c)

To wkłada znak do sznurka, zwiększając długość o jeden. Przesunięcie to indeks, w którym postać zostanie wstawiona. Liczenie przesunięcia rozpoczyna się od 1, a nie 0. Po prawej stronie tego, co jest wstawiane, znaki w ciągu są przesunięte w jednym miejscu po prawej stronie. W poniższym kodzie „s” jest wstawiany między „r” i '.::

StringBuilder sb = nowy StringBuilder („To jest tancerz.");
StringBuilder ret = sb.Wstaw (18, „S”);
System.na zewnątrz.println (sb);
System.na zewnątrz.println (ret);

Wyjście to:

To są tancerze.
To są tancerze.

Metoda zwraca nowy ciąg. Zarówno stare, jak i nowe ciągi są modyfikowane. Zdanie wyjściowe nie jest dobrym angielskim i zostanie omówione poniżej:

Public StringBuilder Insert (int offset, char [] str)

Pamiętaj, że liczenie przesunięcia w Javie zaczyna się od jednego, a nie zero. Dzięki temu można włożyć do dystrynowania do oryginalnego ciągu, jak w następującym kodzie:

StringBuilder sb = nowy StringBuilder („To jest tancerz.");
StringBuilder ret = sb.Wstaw (12, „Big”);
System.na zewnątrz.println (sb); System.na zewnątrz.println (ret);

Wyjście to:

To jest duży tancerz.
To jest duży tancerz.

Zarówno oryginał, jak i powracający były zmiana.

Public StringBuilder Insert (int index, char [] str, int offset, int len)

Podpisanie z innego ciągu można włożyć do oryginalnego ciągu, jak pokazano w następującej próbce kodu:

StringBuilder sb = nowy StringBuilder („To jest tancerz.");
StringBuilder anotherstr = nowy StringBuilder („Big Boss.");
StringBuilder ret = sb.Wstaw (12, Anotherstr, 4, 8);
System.na zewnątrz.println (sb); System.na zewnątrz.println (ret);

Wyjście to:

To jest duży tancerz.
To jest duży tancerz.

Część podłoża pobrana z drugiego ciągu to: len - offset, e.G. 8 - 4 Aby uzyskać „duże”.

Wniosek

Literał stringowy nie można edytować z klasą stringów w Javie. Klasa StringBuilder to klasa String, której dosłowność można edytować. Klasa jest w Javie.Lang.* pakiet i nie wymaga importu. Ta klasa ma konstruktory i metody. Bardziej używane zostały wyjaśnione w poprzednich sekcjach. Mamy nadzieję, że ten artykuł jest pomocny. Sprawdź inne artykuły w Linux, aby uzyskać więcej wskazówek i samouczków.