Cuplikan kuliah dengan seorang mentor sebagai bagian dari kursus Codegym University. Mendaftar untuk kursus penuh.


1 Membandingkan string

Salah satu operasi paling umum dengan string adalah perbandingan. Kelas String memiliki lebih dari sepuluh metode berbeda yang digunakan untuk membandingkan satu string dengan string lainnya. Di bawah ini kita akan melihat 8 yang utama.

Metode Keterangan
boolean equals(String str)
String dianggap sama jika semua karakternya cocok.
boolean equalsIgnoreCase(String str)
Membandingkan string, mengabaikan huruf (abaikan apakah itu huruf besar atau kecil)
int compareTo(String str)
Membandingkan string, mengembalikan jumlah karakter yang cocok dari awal string.
public int compareToIgnoreCase(String str)
Mengembalikan jumlah karakter yang cocok dari awal string, abaikan huruf besar-kecil
boolean regionMatches(int toffset, String str, int offset, int len)
Membandingkan bagian-bagian string
boolean startsWith(String prefix)
Memeriksa apakah string saat ini dimulai dengan stringprefix
boolean endsWith(String suffix)
Memeriksa apakah string saat ini diakhiri dengan stringsuffix

Katakanlah Anda ingin menulis sebuah program yang meminta jalur pengguna ke file dan kemudian memeriksa jenis file berdasarkan ekstensinya. Kode program semacam itu mungkin terlihat seperti ini:

Kode Catatan
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");
}
Membuat Scannerobjek
Membaca baris dari konsol

Periksa apakah string pathdiakhiri dengan string yang diberikan


2 Mencari substring

Setelah membandingkan string, operasi terpopuler kedua adalah menemukan satu string di dalam string lainnya. Kelas String juga memiliki beberapa metode untuk ini:

Metode Keterangan
int indexOf(String str)
Mencari string strdalam string saat ini. Mengembalikan indeks karakter pertama dari kejadian pertama.
int indexOf(String str, int index)
Mencari string strdalam string saat ini, melewatkan indexkarakter pertama. Mengembalikan indeks kejadian.
int lastIndexOf(String str)
Mencari string strdalam string saat ini, mulai dari akhir. Mengembalikan indeks kejadian pertama.
int lastIndexOf(String str, int index)
Mencari string strdalam string saat ini dari akhir, melewatkan indexkarakter pertama.
boolean matches(String regex)
Memeriksa apakah string saat ini cocok dengan pola yang ditentukan oleh ekspresi reguler.

Metode indexOf(String)dan indexOf(String, index)sering digunakan dalam kombinasi. Metode pertama memungkinkan Anda menemukan kejadian pertama dari substring yang diteruskan dalam string saat ini. Dan metode kedua memungkinkan Anda menemukan kejadian kedua, ketiga, dst. dengan melewatkan karakter indeks pertama.

Misalkan kita memiliki url seperti " https://domain.com/about/reviews ", dan kita ingin mengganti nama domain tersebut dengan " codegym.cc ". Url dapat memiliki semua jenis nama domain yang berbeda, tetapi kami mengetahui hal berikut:

  • Nama domain diawali dengan dua garis miring — "//"
  • Nama domain diikuti dengan garis miring ke depan — " /"

Seperti inilah tampilan kode untuk program semacam itu:

Kode Catatan
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);
Membuat objek Pemindai
Membaca satu baris dari konsol

Dapatkan indeks kemunculan pertama string " //"
Kita mendapatkan indeks kemunculan pertama string /, tetapi lihat hanya setelah kemunculan karakter //.
Kami mendapatkan string dari awal sampai akhir karakter //
Kami mendapatkan string dari /sampai akhir.

Kami menggabungkan string dan domain baru.

Metode lastIndexOf(String)and lastIndexOf(String, index)bekerja dengan cara yang sama, hanya pencarian dilakukan dari akhir string ke awal.



3 Membuat substring

Cuplikan kuliah dengan seorang mentor sebagai bagian dari kursus Codegym University. Mendaftar untuk kursus penuh.


Selain membandingkan string dan menemukan substring, ada tindakan lain yang sangat populer: mendapatkan substring dari sebuah string. Seperti yang terjadi, contoh sebelumnya menunjukkan kepada Anda substring()pemanggilan metode yang mengembalikan sebagian string.

Berikut adalah daftar 8 metode yang mengembalikan substring dari string saat ini:

Metode Keterangan
String substring(int beginIndex, int endIndex)
Mengembalikan substring yang ditentukan oleh rentang indeks beginIndex..endIndex.
String repeat(int count)
Mengulangi string saat ini sebanyak n kali
String replace(char oldChar, char newChar)
Mengembalikan string baru: mengganti karakter oldChardengan karakternewChar
String replaceFirst(String regex, String replacement)
Menggantikan substring pertama, ditentukan oleh ekspresi reguler, dalam string saat ini.
public String replaceAll(String regex, String replacement)
Mengganti semua substring dalam string saat ini yang cocok dengan ekspresi reguler.
String toLowerCase()
Mengubah string menjadi huruf kecil
String toUpperCase()
Mengubah string menjadi huruf besar
String trim()
Menghapus semua spasi di awal dan akhir string

Berikut ringkasan metode yang tersedia:

substring(int beginIndex, int endIndex)metode

Metode substringmengembalikan string baru yang terdiri dari karakter dalam string saat ini, dimulai dari karakter dengan indeks beginIndexdan diakhiri dengan endIndex. Seperti semua interval di Java, karakter dengan indeks endIndextidak termasuk dalam interval. Contoh:

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

Jika endIndexparameter tidak ditentukan (yang mungkin), maka substring diambil dari karakter di beginIndex ke akhir string.

repeat(int n)metode

Metode pengulangan hanya mengulangi nwaktu string saat ini. Contoh:

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

replace(char oldChar, char newChar)metode

Metode replace()mengembalikan string baru di mana semua karakter oldChardiganti dengan karakter newChar. Ini tidak mengubah panjang string. Contoh:

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

replaceFirst()dan replaceAll()metode

Metode ini replaceAll()mengganti semua kemunculan satu substring dengan substring lainnya. Metode replaceFirst()menggantikan kejadian pertama dari substring yang diteruskan dengan substring yang ditentukan. String yang akan diganti ditentukan oleh ekspresi reguler. Kami akan mempelajari ekspresi reguler dalam pencarian Java Multithreading .

Contoh:

Kode Hasil
"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()metode

Kami mengetahui metode ini ketika kami pertama kali belajar tentang memanggil metode kelas String.

trim()metode

Metode ini trim()menghilangkan spasi awal dan akhir dari sebuah string. Tidak menyentuh spasi yang ada di dalam string (yaitu tidak di awal atau akhir). Contoh:

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