1. Pagbabago ng mga string

Sa Java, ang mga string ay mga hindi nababagong bagay. Ginawa ito upang gawing lubos na na-optimize ang klase ng String at upang payagan itong magamit kahit saan. Halimbawa, ang mga hindi nababagong uri lamang ang inirerekomenda para gamitin bilang mga susi sa koleksyon ng HashMap .

Gayunpaman, madalas na lumilitaw ang mga sitwasyon kung kailan makikita ng mga programmer na mas maginhawa para sa Stringklase na maging nababago. Gusto nila ng klase na hindi gumagawa ng bagong substring tuwing tinatawag ang isa sa mga pamamaraan nito.

Well, ipagpalagay na mayroon kaming isang napakalaking string at kailangan naming madalas na magdagdag ng isang bagay sa dulo nito. Sa kasong ito, kahit na ang isang koleksyon ng mga character ( ArrayList<Character>) ay maaaring maging mas mahusay kaysa sa patuloy na muling paglikha at pagsasama-sama ng mga String object.

Iyan mismo ang dahilan kung bakit naidagdag sa wikang Java ang isang tulad-String na uri na maaaring baguhin. Ito ay tinatawag na StringBuilder.

Paglikha ng isang bagay

Upang lumikha ng isang StringBuilderbagay batay sa isang umiiral na string, kailangan mong magsagawa ng isang pahayag tulad ng:

StringBuilder name = new StringBuilder(string);

Upang lumikha ng isang walang laman na nababagong string, kailangan mong gumamit ng isang pahayag na tulad nito:

StringBuilder name = new StringBuilder();

Listahan ng mga pamamaraan

Ang StringBuilderklase ay may dalawang dosenang nakakatulong na pamamaraan. Narito ang mga pinakamahalaga:

Pamamaraan Paglalarawan
StringBuilder append(obj)
Kino-convert ang naipasa na bagay sa isang string at idinadagdag ito sa kasalukuyang string
StringBuilder insert(int index, obj)
Kino-convert ang naipasa na bagay sa isang string at ipinapasok ito sa kasalukuyang string
StringBuilder replace(int start, int end, String str)
Pinapalitan ang bahagi ng string na tinukoy ng start..end interval ng naipasa na string
StringBuilder deleteCharAt(int index)
Tinatanggal ang character na may tinukoy na index mula sa string
StringBuilder delete(int start, int end)
Tinatanggal ang mga character sa loob ng tinukoy na agwat mula sa string
int indexOf(String str, int index)
Naghahanap ng substring sa kasalukuyang string
int lastIndexOf(String str, int index)
Naghahanap ng substring sa kasalukuyang string, simula sa dulo
char charAt(int index)
Ibinabalik ang character sa string sa naipasa na index
String substring(int start, int end)
Ibinabalik ang substring na tinukoy ng tinukoy na agwat
StringBuilder reverse()
Binabaliktad ang kasalukuyang string.
void setCharAt(int index, char)
Binabago ang character sa tinukoy na index sa naipasa na character
int length()
Ibinabalik ang haba ng string sa mga character

Narito ang isang maikling paglalarawan ng bawat pamamaraan


2. Paglalarawan ng mga pamamaraan:

Nagdaragdag sa isang string

Upang magdagdag ng isang bagay sa isang nababagong string ( StringBuilder), gamitin ang append()pamamaraan. Halimbawa:

Code Paglalarawan
StringBuilder builder = new StringBuilder("Hi");
builder.append("Bye");
builder.append(123);
Hi
HiBye
HiBye123

Pag-convert sa isang karaniwang string

Upang i-convert ang isang StringBuilderbagay sa isang String object, kailangan mo lamang na tawagan ang toString()pamamaraan nito. Halimbawa

Code Output
StringBuilder builder = new StringBuilder("Hi");
builder.append(123);
String result = builder.toString();
System.out.println(result);
Hi123

Paano ko tatanggalin ang isang character?

Upang tanggalin ang isang character sa isang nababagong string, kailangan mong gamitin ang deleteCharAt()paraan. Halimbawa:

Code Output
StringBuilder builder = new StringBuilder("Hello");
builder.deleteCharAt(2);
String result = builder.toString();
System.out.println(result);
Helo

Paano ko papalitan ang bahagi ng isang string ng isa pang string?

Para dito mayroong replace(int begin, int end, String str)pamamaraan. Halimbawa:

Code Output
StringBuilder builder = new StringBuilder("Mellow");
builder.replace(2, 5, "Hello!");
String result = builder.toString();
System.out.println(result);
MeHello!w


3. Mga kapaki-pakinabang na halimbawa ng pagtatrabaho sa mga string

Paano ko mababaligtad ang isang string?

Mayroong isang espesyal na paraan para sa paggawa nito — reverse(); Halimbawa:

Code Output
String str = "Hello";
StringBuilder builder = new StringBuilder(str);
builder.reverse();
String result = builder.toString();
System.out.println(result);
olleH

StringBufferklase

May isa pang klase — StringBuffer, na isang analogue ng StringBuilderklase, ngunit ang mga pamamaraan nito ay minarkahan ng synchronizedmodifier. Nangangahulugan ito na ang StringBufferbagay ay maaaring ma-access nang sabay-sabay mula sa maraming mga thread.

Ngunit ito ay mas mabagal kaysa sa StringBuilder. Maaaring kailanganin mo ang klase na ito kapag nagsimula kang aktibong tuklasin ang multithreading sa Java Multithreading quest.