A snippet kuliah karo mentor minangka bagéan saka kursus Universitas Codegym. Ndaftar kanggo kursus lengkap.
"Hai, Amigo! Dina iki kita bakal njelasno sawetara skenario liyane umum nglibatno nggarap strings. Contone, apa sampeyan ngerti carane pamisah string menyang sawetara bagéan?"
"Aku ora bakal ngomong langsung, Ellie. Nanging sampeyan bakal ngandhani aku, ta?"
split()
cara
"Ana sawetara cara kanggo nindakake iki. Cara pisanan kanggo pamisah string dadi pirang-pirang bagean yaiku nggunakake split()
metode kasebut. Ekspresi reguler sing nemtokake string pembatas khusus kudu dilewati minangka parameter. Sampeyan bakal sinau babagan ekspresi reguler. pencarian Java Collections .
Tuladha:
Kode | asil |
---|---|
|
Asil bakal dadi array saka telung senar:
|
Prasaja, nanging kadhangkala pendekatan iki kakehan. Yen ana akeh pembatas (contone, spasi, karakter baris anyar, tab, titik), sampeyan kudu nggawe ekspresi reguler sing rada rumit."
“Inggih, mesthi. Lan yen angel diwaca, banjur angel nggawe owah-owahan.
StringTokenizer
kelas
A snippet kuliah karo mentor minangka bagéan saka kursus Universitas Codegym. Ndaftar kanggo kursus lengkap.
"Jawa duwe kelas khusus sing kabeh tugase yaiku pamisah string dadi substrings.
"Kelas iki ora nggunakake ekspresi reguler: tinimbang, sampeyan mung ngliwati senar sing kasusun saka delimiters. Kauntungan saka pendekatan iki yaiku ora ngilangi kabeh senar bebarengan, nanging pindhah saka wiwitan nganti pungkasan. langkah ing wektu.
Kelas kasebut nduweni konstruktor lan rong cara. We pass konstruktor senar sing dipérang dadi bagéan, lan senar dumadi saka pesawat saka karakter delimiting.
Metode | Katrangan |
---|---|
|
Ngasilake substring sabanjure |
|
Priksa manawa ana luwih akeh substrings. |
"Kelas iki piye wae ngelingake aku babagan kelas Scanner, sing uga duwe nextLine()
lan hashNextLine()
metode.
"Iku pengamatan apik sing wis digawe. Sampeyan bisa nggawe StringTokenizer
obyek karo printah iki:
StringTokenizer name = new StringTokenizer(string, delimiters);
Where string punika senar kanggo dibagi dadi bagean. Lan delimiters minangka senar, lan saben karakter ing iku dianggep minangka delimiter a. Tuladha:
Kode | Output konsol |
---|---|
|
|
"Elinga yen saben karakter ing senar sing dilewati ing senar kapindho menyang StringTokenizer
konstruktor dianggep minangka pemisah.
String.format()
metode lan StringFormatter
kelas
"Cara liyane sing menarik saka kelas String yaiku format()
.
"Ayo sampeyan duwe macem-macem variabel sing nyimpen data. Kepiye carane sampeyan nampilake ing layar ing siji baris? Contone, kita duwe sawetara data (kolom kiwa) lan output sing dikarepake (kolom tengen):
Kode | Output konsol |
---|---|
|
|
Kode kanggo program kasebut bakal katon kaya iki:
Kode program |
---|
|
"Sampeyan bakal setuju karo aku yen kode kasebut ora bisa diwaca. Lan yen jeneng variabel luwih dawa, kode kasebut bakal dadi luwih angel:
Kode program |
---|
|
"Ya, iku angel maca!"
"Aja kuwatir. Iki minangka kahanan umum ing program donya nyata, mula aku pengin ngandhani babagan cara nulis kode iki kanthi luwih gampang lan luwih ringkes.
String.format
" String
Kelas kasebut nduweni cara statis format()
: ngidini sampeyan nemtokake pola kanggo ngrakit senar kanthi data. Tampilan umum perintah kasebut kaya ing ngisor iki:
String name = String.format(pattern, parameters);
Tuladha:
Kode | asil |
---|---|
|
|
|
|
|
|
" format()
Parameter pisanan metode yaiku senar format sing ngemot kabeh teks sing dikarepake bebarengan karo karakter khusus sing diarani penentu format (kayata %d
lan %s
) ing panggonan sing sampeyan kudu nglebokake data.
" format()
Cara ngganti iki %s
lan %d
format specifiers karo paramèter sing tindakake format string ing dhaftar parameter. Yen kita arep nglebokake string, banjur kita nulis . %s
Yen kita pengin nglebokake nomer, banjur format specifier punika %d
. Conto:
Kode | asil |
---|---|
|
s iku padha karo"a=1, b=4, c=3" |
"Iki dhaptar singkat saka penentu format sing bisa digunakake ing string format:
Specifier | Artine |
---|---|
|
String |
|
interger : byte ,,,, short _int long |
|
nomer nyata float :,double |
|
boolean |
|
char |
|
Date |
|
% watak |
"Specifiers iki nuduhake jinis data, nanging ana uga specifiers sing nuduhake urutan data. Kanggo njaluk argumen kanthi nomer (nomer diwiwiti saka siji), sampeyan kudu nulis "% 1$ d " tinimbang " %d ". Tuladha:
Kode | asil |
---|---|
|
s iku padha karo"a=13, b=12, c=11" |
%3$d
bakal entuk argumen kaping 3, %2$d
bakal entuk argumen kaping pindho, lan %d
bakal entuk argumen sing pertama. The %s
lan %d
format specifiers nuduhake bantahan preduli saka specifiers kaya %3$d
utawa%2$s
Kolam String
"Saben senar sing ditemtokake ing kode minangka string literal disimpen ing area memori sing diarani nalika StringPool
program lagi mlaku. StringPool
minangka array khusus kanggo nyimpen senar. Tujuane kanggo ngoptimalake panyimpenan senar:
"Kaping pisanan, senar sing ditemtokake ing kode kudu disimpen ing endi wae, ta? Kode kasusun saka perintah, nanging data (utamane, senar gedhe) kudu disimpen ing memori kanthi kapisah saka kode kasebut. Mung referensi kanggo obyek senar katon ing kode.
"Kapindho, kabeh literal string identik kudu disimpen ing memori mung sapisan. Lan mung cara kerjane. Nalika kode kelas sampeyan dimuat dening mesin Java, kabeh literal string ditambahake yen durung ana StringPool
. wis ana, banjur kita mung nggunakake referensi senar saka StringPool
.
Dadi, yen sampeyan nemtokake literal sing padha menyang sawetara variabel String ing kode sampeyan, mula variabel kasebut bakal ngemot referensi sing padha. A literal bakal ditambahake StringPool
mung sapisan. Ing kabeh kasus liyane, kode bakal entuk referensi kanggo senar sing wis dimuat ing file StringPool
.
Mangkene kira-kira cara kerjane:
Kode | Nggarap StringPoll |
---|---|
|
|
"Mulane variabel a
lan b
bakal nyimpen referensi sing padha."
“Muga-muga aku ngerti kabeh kanthi bener.
intern()
cara.
"Lan sisih paling apik iku sampeyan bisa programmatically nambah senar kanggo StringPool
. Kanggo nindakake iki, sampeyan mung kudu nelpon cara String
variabel intern()
.
" intern()
Cara kasebut bakal nambah senar menyang StringPool
yen durung ana, lan bakal ngasilake referensi menyang senar ing file StringPool
.
"Lan apa sing bakal kelakon yen loro strings podho rupo ditambahake menyang StringPool
nggunakake intern()
cara?"
"Cara kasebut bakal ngasilake referensi sing padha. Iki bisa digunakake kanggo mbandhingake string kanthi referensi. Conto:
Kode | Cathetan |
---|---|
|
|
|
|
Sampeyan ora bisa nggunakake cara iki asring. Sing jarene, wong seneng takon babagan iki ing wawancara kerja.
"Dadi, luwih becik ngerti babagan iki tinimbang ora ngerti. Matur nuwun, Ellie!"
GO TO FULL VERSION