Strings internal workings, lan substring method - 1

"Halo, Amigo!"

"Halo, Ellie."

"Aku arep ngomong babagan substrings. Substring minangka bagean saka senar. Lan operasi sing paling umum ditindakake ing senar (sawise nggabungake sawetara senar bebarengan) yaiku entuk substring."

7) Kepiye carane aku entuk bagean saka String?

"Cara substring ngasilake bagean saka String. Cara iki duwe rong versi."

"Versi pisanan ngasilake substring sing ditemtokake dening indeks wiwitan lan pungkasan. Nanging karakter ing indeks pungkasan ora kalebu! Yen sampeyan ngliwati angka 1 lan 3, banjur substring mung bakal ngemot karakter kapindho lan katelu (elinga yen indeks diwiwiti. karo 0).

"Versi kapindho ngasilake substring wiwit saka indeks liwati nganti pungkasan String."

Metode (s) Tuladha
String substring(int beginIndex, int endIndex)
String s = "Good news, everyone!";
s = s.substring(1,6);
asil:

s == "ood n";
String substring(int beginIndex)
String s = "Good news, everyone!";
s = s.substring(1);

"Cukup prasaja. Matur nuwun, Ellie."

"Aku uga bakal nerangake cara kerja internal obyek String kanggo sampeyan."

"Minangka sampeyan mbokmenawa wis ngerti, String kelas immutable. Lan apa kaluwihan sing menehi kita? Minangka mengkono, salah siji saka kaluwihan tombol punika kemampuan kanggo njaluk substring a. Nanging pisanan iku pisanan."

"Sacara internal, obyek String ngemot macem-macem karakter, sing ora angel ditebak. Nanging uga nyimpen rong variabel liyane: indeks karakter pisanan ing array lan jumlah karakter. Saiki aku bakal pitutur marang kowe apa iki. digunakake kanggo."

"Nalika kita nggawe substring nggunakake metode substring , obyek String anyar digawe."

"Nanging, tinimbang nyimpen referensi menyang array karakter anyar, obyek nyimpen referensi menyang array lawas uga rong variabel sing digunakake kanggo nemtokake bagean saka array karakter asli sing digandhengake karo."

"Aku ora ngerti apa-apa."

"Nalika substring digawe, array karakter ora disalin menyang obyek String anyar. Nanging, loro obyek nyimpen referensi kanggo array karakter asli. Nanging! Obyek kapindho uga nyimpen rong variabel: indeks wiwitan ing array lan jumlah karakter sing kalebu ing substring."

"Cek iki:"

Njupuk substring Apa sing disimpen ing substring
String s = "mama";
Apa sing disimpen ing s:

char[] value = {'m','a','m','a'};
offset = 0;
count = 4;
String s2 = s.substring(1);
Apa sing disimpen ing s2:

char[] value = {'m','a','m','a'};
offset = 1;
count = 3;
String s3 = s.substring(1, 3);
Apa sing disimpen ing s3:

char[] value = {'m','a','m','a'};
offset = 1;
count = 2;

"Kabeh telung Strings nyimpen referensi kanggo array char padha, nanging uga nyimpen indeks saka karakter pisanan lan pungkasan sing ana hubungane karo wong-wong mau. Utawa luwih akurat, indeks saka karakter pisanan lan count karakter."

"Sing nggawe akal saiki."

"Dadi, yen sampeyan njupuk String sing dawane 10.000 karakter lan sampeyan nggawe 10.000 substrings saka sembarang dawa, substrings iki bakal nggunakake memori sethitik banget, amarga array karakter ora duplikat. Strings iki, sing bakal sampeyan gunakake munggah spasi, mung bakal njupuk sawetara bita."

"Keren!"

"Nanging sampeyan bisa nindakake yen sampeyan bisa ngowahi Strings?"

"Ora, ana sing bisa ngganti String pisanan, banjur kabeh substrings uga bakal diganti. Saiki ngerti kenapa dheweke nindakake. Iku solusi sing apik banget."

"Aku bungah sing disenengi."