1. Mbandhingake senar

Salah sawijining operasi sing paling umum karo senar yaiku perbandingan. Kelas String duwe luwih saka sepuluh cara sing digunakake kanggo mbandhingake senar siji karo senar liyane. Ing ngisor iki kita bakal ndeleng pitung sing utama.

Metode Katrangan
boolean equals(String str)
String dianggep padha yen kabeh karakter cocok.
boolean equalsIgnoreCase(String str)
Mbandhingake senar, ora nggatekake huruf cilik (ora nggatekake huruf gedhe utawa cilik)
int compareTo(String str)
Mbandhingake senar kanthi leksikografis. Ngasilake 0 yen strings padha. Nilai bali kurang saka nol yen string saiki kurang saka parameter string. Nilai bali luwih gedhe tinimbang yen string saiki luwih gedhe tinimbang parameter string.
int compareToIgnoreCase(String str)
Mbandhingake senar kanthi leksikografis nalika ora nggatekake kasus. Ngasilake 0 yen strings padha. Nilai bali negatif yen string saiki kurang saka parameter string. Nilai bali luwih gedhe tinimbang yen string saiki luwih gedhe tinimbang parameter string.
boolean regionMatches(int toffset, String str, int offset, int len)
Mbandhingake bagean saka strings
boolean startsWith(String prefix)
Priksa manawa senar saiki diwiwiti karo senarprefix
boolean endsWith(String suffix)
Priksa manawa senar saiki rampung karo senarsuffix

Contone, sampeyan pengin nulis program sing njaluk pangguna dalan menyang file banjur mriksa jinis file adhedhasar ekstensi. Kode program kasebut bisa uga katon kaya iki:

Kode Cathetan
Scanner console = new Scanner(System.in);
String path = console.nextLine();

if (path.endsWith(".jpg") || path.endsWith(".jpeg"))
{
   System.out.println("This is a jpeg!");
}
else if (path.endsWith(".htm") || path.endsWith(".html"))
{
   System.out.println("This is an HTML page");
}
else if (path.endsWith(".doc") || path.endsWith(".docx"))
{
   System.out.println("This is a Word document");
}
else
{
   System.out.println("Unknown format");
}
Nggawe Scannerobyek
Maca baris saka console

Priksa manawa senar pathrampung karo senar diwenehi


2. Nggoleki substrings

Sawise mbandhingake senar, operasi sing paling populer kaloro yaiku nemokake senar ing njero liyane. Kelas String uga duwe sawetara cara kanggo iki:

Metode Katrangan
int indexOf(String str)
Nggoleki senar string senar saiki. Ngasilake indeks karakter pisanan saka kedadeyan pisanan.
int indexOf(String str, int index)
Nggoleki senar string senar saiki, ngliwati indexkarakter pisanan. Ngasilake indeks kedadeyan.
int lastIndexOf(String str)
Nggoleki senar string senar saiki, diwiwiti saka pungkasan. Ngasilake indeks kedadeyan pisanan.
int lastIndexOf(String str, int index)
Nggoleki senar string senar saiki saka mburi, ngliwati indexkarakter pisanan.
boolean matches(String regex)
Priksa manawa string saiki cocog karo pola sing ditemtokake dening ekspresi reguler.

Cara indexOf(String)lan indexOf(String, index)cara asring digunakake ing kombinasi. Cara pisanan ngidini sampeyan nemokake kedadeyan pisanan saka substring liwati ing string saiki. Lan cara liya ngidini sampeyan nemokake kedadeyan kaloro, katelu, lan sapiturute kanthi ngliwati karakter indeks pisanan.

Upaminipun kita duwe url kaya " https://domain.com/about/reviews ", lan kita pengin ngganti jeneng domain karo " codegym.cc ". Url bisa duwe macem-macem jeneng domain, nanging kita ngerti ing ngisor iki:

  • Jeneng domain didhisiki karo rong garis miring maju — " //"
  • Jeneng domain diterusake nganggo garis miring siji — " /"

Iki minangka kode kanggo program kasebut:

Kode Cathetan
Scanner console = new Scanner(System.in);
String path = console.nextLine();

int index = path.indexOf("//");
int index2 = path.indexOf("/", index + 2);

String first = path.substring(0, index + 2);
String last = path.substring(index2);

String result = first + "codegym.cc" + last;
System.out.println(result);
Nggawe obyek Scanner
Maca baris saka console

Njaluk indeks saka kedadeyan pisanan saka senar " //"
Kita njaluk indeks saka kedadean pisanan saka senar /, nanging katon mung sawise kedadean saka karakter //.
Kita entuk senar saka awal nganti pungkasan karakter //
Kita entuk senar saka /pungkasan.

We concatenate strings lan domain anyar.

Cara lastIndexOf(String)lan lastIndexOf(String, index)cara kerjane padha, mung telusuran sing ditindakake saka mburi senar nganti wiwitan.



3. Nggawe substrings

Saliyane mbandhingake senar lan nemokake substrings, ana tumindak liyane sing populer banget: njupuk substring saka senar. Kaya sing kedadeyan, conto sadurunge nuduhake substring()telpon metode sing ngasilake bagean saka senar.

Punika dhaptar 8 cara sing ngasilake substrings saka string saiki:

Metode Katrangan
String substring(int beginIndex, int endIndex)
Ngasilake substring sing ditemtokake dening kisaran indeks beginIndex..endIndex.
String repeat(int count)
Baleni string saiki n kaping
String replace(char oldChar, char newChar)
Ngasilake string anyar: ngganti karakter oldCharkaro karakternewChar
String replaceFirst(String regex, String replacement)
Ngganti substring pisanan, sing ditemtokake dening ekspresi reguler, ing string saiki.
String replaceAll(String regex, String replacement)
Ngganti kabeh substrings ing string saiki sing cocog karo ekspresi reguler.
String toLowerCase()
Ngonversi string dadi huruf cilik
String toUpperCase()
Ngonversi string menyang huruf gedhe
String trim()
Mbusak kabeh spasi ing wiwitan lan pungkasan senar

Mangkene ringkesan cara sing kasedhiya:

substring(int beginIndex, int endIndex)cara

Cara kasebut substringngasilake senar anyar sing kasusun saka karakter ing senar saiki, diwiwiti saka karakter kanthi indeks beginIndexlan pungkasan ing endIndex. Kaya kabeh interval ing Jawa, karakter karo indeks endIndexora kalebu ing interval. Tuladha:

Kode asil
"Hellos".substring(0, 3);
"Hel"
"Hellos".substring(1, 4);
"ell"
"Hellos".substring(1, 6);
"ellos"
"Hellos".substring(1);
"ellos"

Yen endIndexparameter ora ditemtokake (sing bisa), banjur substring dijupuk saka karakter ing beginIndex kanggo mburi senar.

repeat(int n)cara

Cara baleni mung mbaleni nkaping string saiki. Tuladha:

Kode asil
"Hello".repeat(3);
"HelloHelloHello"
"Hello".repeat(2);
"HelloHello"
"Hello".repeat(1);
"Hello"
"Hello".repeat(0);
""

replace(char oldChar, char newChar)cara

Cara iki replace()ngasilake string anyar sing kabeh karakter oldChardiganti karo karakter newChar. Iki ora ngganti dawa senar. Tuladha:

Kode asil
"Programming".replace('Z', 'z');
"Programming"
"Programming".replace('g', 'd');
"Prodrammind"
"Programming".replace('a', 'e');
"Progremming"
"Programming".replace('m', 'w');
"Prograwwing"

replaceFirst()lan replaceAll()cara

Cara iki replaceAll()ngganti kabeh kedadeyan saka siji substring karo liyane. Cara kasebut replaceFirst()ngganti kedadeyan pisanan saka substring liwati karo substring sing ditemtokake. String sing bakal diganti ditemtokake dening ekspresi reguler. Kita bakal nyelidiki ekspresi reguler ing pencarian Java Multithreading .

Tuladha:

Kode asil
"Good news everyone!".replaceAll("e.", "EX");
"Good nEXs EXEXyonEX"
"Good news everyone!".replaceAll("o.", "-o-");
"G-o-d news every-o-e!"
"Good news everyone!".replaceFirst("e.", "EX");
"Good nEXs everyone!"
"Good news everyone!".replaceFirst("o.", "-o-");
"G-o-d news everyone!"

toLowerCase() and toUpperCase()cara

Kita kudu ngerti metode kasebut nalika kita sinau babagan nelpon metode kelas String.

trim()cara

Cara kasebut trim()mbusak spasi anjog lan mburi saka senar. Ora ndemek spasi sing ana ing senar (yaiku ora ing wiwitan utawa pungkasan). Tuladha:

Kode asil
"     ".trim();
""
"Hello".trim();
"Hello"
" Hello\n how are you?\n   ".trim();
"Hello\n how are you?\n"
"  Password\n   \n ".trim();
"Password\n   \n"