"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 StringBuilder
obyek 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
" StringBuilder
Kelas kasebut duwe rong rolas cara sing migunani. Iki sing paling penting:
Metode | Katrangan |
---|---|
|
Ngonversi obyek liwati menyang senar lan appends menyang senar saiki |
|
Ngonversi obyek liwati menyang senar lan nglebokake ing tengah senar saiki |
|
Ngganti bagean senar sing ditemtokake dening interval wiwitan..akhir karo senar liwati |
|
Mbusak karakter kanthi indeks sing ditemtokake saka senar |
|
Mbusak karakter ing interval tartamtu saka senar |
|
Nggoleki substring ing string saiki |
|
Nggoleki substring ing senar saiki, diwiwiti saka pungkasan |
|
Ngasilake karakter ing senar ing indeks liwati |
|
Ngasilake substring sing ditemtokake dening interval sing ditemtokake |
|
Nguripake senar saiki. |
|
Ngganti karakter ing indeks sing ditemtokake dadi karakter sing dilewati |
|
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 |
---|---|
|
Hi |
Ngonversi menyang string standar
"Kanggo ngowahi StringBuilder
obyek menyang obyek String, sampeyan mung kudu nelpon toString()
metode kasebut. Conto
Kode | Output |
---|---|
|
Hi123 |
Kepiye carane mbusak karakter?
"Kanggo mbusak karakter ing senar sing bisa diowahi, sampeyan kudu nggunakake deleteCharAt()
metode kasebut. Conto:
Kode | Output |
---|---|
|
Helo |
Kepiye carane ngganti bagean saka senar karo senar liyane?
"Kanggo iki ana replace(int begin, int end, String str)
cara. Tuladha:
Kode | Output |
---|---|
|
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 |
---|---|
|
olleH |
"Saliyane StringBuilder
kelas, Jawa nduweni kelas kaya string liyane sing diarani StringBuffer
. Iki minangka analog saka StringBuilder
kelas kasebut, nanging metode kasebut ditandhani karo synchronized
modifier."
"Apa tegese?"
"Iku tegese StringBuffer
obyek 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'.
GO TO FULL VERSION