"Salam, Amigo!"

"Hallo, Riska!"

"Sampeyan saiki ngerti cukup babagan strings kanggo sinau soko menarik. Luwih khusus, kelas anyar sing padha, nanging ora persis padha, kelas String."

"Swara sing nyenengake, sanajan aku ora ngerti carane strings biasa kurang lan kenapa kelas kaya string liyane dibutuhake."

"Ayo diwiwiti kanthi kasunyatan manawa senar minangka obyek sing ora bisa diganti ing Jawa."

"Piye iki? Aku lali ... Utawa aku ora ngerti wiwit ... "

"Ayo kula ngelingake yen obyek sing ora bisa diganti yaiku sing negarane ora bisa diganti sawise digawe."

"Ahhh... Apa strings ing Jawa ora bisa diganti?"

"Iki ditindakake kanggo nggawe kelas String dioptimalake banget lan supaya bisa digunakake ing endi wae. Contone, mung jinis sing ora bisa diganti sing disaranake digunakake minangka kunci ing koleksi HashMap .

"Nanging, kahanan asring njedhul nalika programer bakal nemokake iku luwih trep kanggo kelas String bisa mutable. Padha pengin kelas sing ora nggawe substring anyar saben-saben salah siji saka cara disebut."

"Nanging apa sing apik kanggo?"

"Inggih, umpamane kita duwe senar sing gedhe banget lan kita kudu kerep nambah soko menyang mburi. Ing kasus iki, malah koleksi karakter ( ArrayList<Character>) bisa luwih efisien tinimbang terus-terusan recreating lan concatenating obyek String."

"Lan pramila kita butuh senar sing dudu kelas String?"

"Persis. Basa Jawa wis ditambahake jinis String-kaya sing bisa diganti. Iki diarani StringBuilder".

Nggawe obyek

"Kanggo nggawe StringBuilderobyek adhedhasar senar sing ana, sampeyan kudu nglakokake statement kaya:

StringBuilder name = new StringBuilder(string);

"Kanggo nggawe string mutable kosong, sampeyan kudu nggunakake statement kaya iki:

StringBuilder name = new StringBuilder();

Dhaftar cara

" StringBuilderKelas kasebut duwe rong rolas cara sing migunani. Iki sing paling penting:

Metode Katrangan
StringBuilder append(obj)
Ngonversi obyek liwati menyang senar lan appends menyang senar saiki
StringBuilder insert(int index, obj)
Ngonversi obyek liwati menyang senar lan nglebokake ing tengah senar saiki
StringBuilder replace(int start, int end, String str)
Ngganti bagean senar sing ditemtokake dening interval wiwitan..akhir karo senar liwati
StringBuilder deleteCharAt(int index)
Mbusak karakter kanthi indeks sing ditemtokake saka senar
StringBuilder delete(int start, int end)
Mbusak karakter ing interval tartamtu saka senar
int indexOf(String str, int index)
Nggoleki substring ing string saiki
int lastIndexOf(String str, int index)
Nggoleki substring ing senar saiki, diwiwiti saka pungkasan
char charAt(int index)
Ngasilake karakter ing senar ing indeks liwati
String substring(int start, int end)
Ngasilake substring sing ditemtokake dening interval sing ditemtokake
StringBuilder reverse()
Nguripake senar saiki.
void setCharAt(int index, char)
Ngganti karakter ing indeks sing ditemtokake dadi karakter sing dilewati
int length()
Ngasilake dawa senar ing karakter

"Lan saiki aku bakal nerangake kanthi ringkes saben metode kasebut kanggo sampeyan.

Appending menyang senar

"Kanggo nambah soko menyang senar sing bisa diowahi ( StringBuilder), gunakake append()metode kasebut. Conto:

Kode Katrangan
StringBuilder builder = new StringBuilder("Hi");
builder.append("Bye");
builder.append(123);
Hi
HiBye
HiBye123

Ngonversi menyang string standar

"Kanggo ngowahi StringBuilderobyek menyang obyek String, sampeyan mung kudu nelpon toString()metode kasebut. Conto

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

Kepiye carane mbusak karakter?

"Kanggo mbusak karakter ing senar sing bisa diowahi, sampeyan kudu nggunakake deleteCharAt()metode kasebut. Conto:

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

Kepiye carane ngganti bagean saka senar karo senar liyane?

"Kanggo iki ana replace(int begin, int end, String str)cara. Tuladha:

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

"Swara trep. Matur nuwun, Rishi."

"Aja sebutno. Piye iki, apa sampeyan bisa muter senar mundur? Kepiye carane?"

"Inggih ... Aku bakal nggawe StringBuilder, sijine senar ing ... Banjur nggawe senar anyar, lan ing daur ulang saka karakter pungkasan kanggo pisanan ... Utawa Mungkin shift bitwise ...

"Ora ala. Nanging bisa uga luwih cepet. Ana cara khusus kanggo nindakake iki - reverse();Conto:

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

"Saliyane StringBuilderkelas, Jawa nduweni kelas kaya string liyane sing diarani StringBuffer. Iki minangka analog saka StringBuilderkelas kasebut, nanging metode kasebut ditandhani karo synchronizedmodifier."

"Apa tegese?"

"Iku tegese StringBufferobyek bisa diakses bebarengan saka macem-macem Utas."

"Aku durung ngerti banget karo utas. Nanging 'bisa diakses saka pirang-pirang utas' jelas luwih apik tinimbang 'ora bisa diakses saka pirang-pirang utas'... Apa ora tansah digunakake? StringBuffer"

"Amarga luwih alon tinimbang StringBuilder. Sampeyan bisa uga mbutuhake kelas kasebut nalika sampeyan miwiti aktif njelajah multithreading ing quest Java Multithreading .

"Aku bakal nulis supaya ora lali, ditandhani 'kanggo masa depan'.