1. Ngowahi strings

Ing Jawa, senar minangka obyek sing ora bisa diganti. Iki ditindakake kanggo nggawe kelas String dioptimalake 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 muncul nalika programer bakal luwih trep kanggo Stringkelas sing bisa diowahi. Dheweke pengin kelas sing ora nggawe substring anyar saben-saben salah sawijining metode diarani.

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

Mulane, jinis kaya String sing bisa diganti ditambahake ing basa Jawa. 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 sing bisa diganti kosong, sampeyan kudu nggunakake statement kaya iki:

StringBuilder name = new StringBuilder();

Dhaftar cara

Kelas kasebut StringBuilderduwe rong cara sing migunani. Ing ngisor 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 menyang 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

Punika katrangan singkat babagan saben metode


2. Katrangan cara:

Appending menyang senar

Kanggo nambah soko kanggo senar mutable ( StringBuilder), nggunakake append()cara. Tuladha:

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

Ngonversi menyang string standar

Kanggo ngowahi StringBuilderobyek dadi obyek String, sampeyan mung kudu nelpon toString()metode kasebut. Tuladha

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. Tuladha:

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


3. Conto migunani kanggo nggarap senar

Kepiye carane mbalikke senar?

Ana cara khusus kanggo nindakake iki - reverse(); Tuladha:

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

StringBufferkelas

Ana kelas liyane - StringBuffer, yaiku analog saka StringBuilderkelas kasebut, nanging cara kasebut ditandhani karo synchronizedmodifier. Iku tegese StringBufferobyek bisa diakses bebarengan saka macem-macem Utas.

Nanging luwih alon tinimbang StringBuilder. Sampeyan bisa uga mbutuhake kelas iki nalika sampeyan miwiti aktif njelajah multithreading ing nggoleki Java Multithreading .