Java Metode split() String dengan Contoh

โšก Ringkasan Cerdas

Pisahkan sebuah String Java menggunakan metode split(), yang memecah teks di mana pun pembatas cocok dan mengembalikan bagian-bagiannya sebagai array String. Argumen limit opsional membatasi jumlah bagian yang dihasilkan, meninggalkan sisanya tetap utuh.

  • ๐Ÿงฉ Jenis Pengembalian: Fungsi split() mengembalikan String[], bukan String tunggal, sehingga hasilnya harus dimasukkan ke dalam sebuah array.
  • ๐Ÿ”ค Pembatasnya adalah Regex: Argumennya adalah ekspresi reguler, jadi karakter seperti titik dan pipa perlu diubah.ping.
  • ๐Ÿ”ข Argumen Batas: Melebihi batas 3 akan menghasilkan dua bagian terpisah dan mempertahankan sisa teks sebagai elemen terakhir.
  • โฃ Pola Spasi Putih: Pola \\s cocok dengan karakter spasi tunggal apa pun, yang memisahkan kalimat menjadi kata-kata.
  • ๏ธ Kosong di Belakang: Kolom kosong di bagian akhir akan diabaikan kecuali jika diberikan batas negatif.
  • ๐Ÿ” Hasil Pembacaan: Perulangan for standar yang dilakukan sepanjang array akan mencetak setiap bagian secara berurutan.

Java Pemisahan string() Metode

Apa yang dimaksud dengan string split() Java?

The split() Metode ini memungkinkan Anda untuk memecahkan string berdasarkan spesifik Java Pembatas string. Paling sering, pembatasnya adalah spasi atau koma (,) yang digunakan untuk memisahkan string.

split() sintaks fungsi

public String[] split(String regex)
public String[] split(String regex, int limit)

โš ๏ธ Catatan tentang jenis pengembalian: split() mengembalikan a String[] susunan, tidak ada satupun String. Menetapkan hasilnya ke suatu nilai biasa String Variabel tersebut gagal dikompilasi dengan kesalahan tipe yang tidak kompatibel, yang merupakan kesalahan paling sering yang dilakukan pemula dengan metode ini.

Parameter

  • Ekspresi reguler: Ekspresi reguler yang diterapkan pada teks atau string.
  • Membatasi: Jumlah maksimum nilai dalam array hasil. Jika dihilangkan atau nol, setiap substring yang cocok dengan regex akan dikembalikan.

Cara Memisahkan String Java dengan Pembatas

Contoh di bawah ini menunjukkan cara membagi string menjadi Java dengan pembatas.

Misalkan kita mempunyai variabel string bernama strMain terbentuk dari beberapa kata โ€” Alpha, Beta, Gamma, Delta, Sigma โ€” semuanya dipisahkan oleh koma (,).

 Pisahkan sebuah String Java

Di sini jika kita ingin semua string individual, pola terbaik yang mungkin dilakukan adalah membaginya berdasarkan koma. Jadi kita akan mendapatkan lima string terpisah sebagai berikut:

  • alfa
  • beta
  • Gamma
  • Delta
  • Sigma

Gunakan tali membagi metode dalam Java terhadap string yang perlu dibagi, dan berikan pemisah sebagai argumen.

Dalam Java pisahkan string dengan pembatas huruf besar/kecil, pemisahnya adalah koma (,) dan hasilnya Java memisahkan string dengan operasi koma akan menghasilkan pemisahan array.

class StrSplit{
  public static void main(String []args){
   String strMain = "Alpha, Beta, Delta, Gamma, Sigma";
    String[] arrSplit = strMain.split(", ");
    for (int i=0; i < arrSplit.length; i++)
    {
      System.out.println(arrSplit[i]);
    }
  }
}

Perulangan dalam kode hanya mencetak masing-masing Java pisahkan string dari array setelah fungsi pemisahan di Java, Seperti yang ditunjukkan di bawah ini.

Output yang Diharapkan:

Alpha
Beta
Delta
Gamma
Sigma

Contoh: Java Metode string split() dengan regex dan panjang

Pertimbangkan situasi di mana Anda hanya membutuhkan 'n' elemen pertama setelah fungsi pemisahan di Java, tetapi ingin bagian string lainnya tetap seperti semula. Outputnya akan seperti ini:

  1. alfa
  2. beta
  3. Delta, Gamma, Sigma

Hal ini dapat dicapai dengan memberikan argumen lain bersamaan dengan operasi split() di Java, dan itu akan menjadi batas jumlah string yang dibutuhkan.

Perhatikan kode berikut dari metode split di Java:

class StrSplit2{
  public static void main(String []args){
   String strMain = "Alpha, Beta, Delta, Gamma, Sigma";
    String[] arrSplit_2 = strMain.split(", ", 3);
    for (int i=0; i < arrSplit_2.length; i++){
      System.out.println(arrSplit_2[i]);
    }
  }
}

Output yang Diharapkan:

Alpha
Beta
Delta, Gamma, Sigma

Perhatikan bahwa batas 3 menghasilkan tepat tiga elemen: dua pemisah pertama dipertahankan, dan semua yang ada setelah pemisah kedua digabungkan sebagai elemen ketiga.

Cara Memisahkan string Java oleh Luar Angkasa

Pertimbangkan situasi di mana Anda ingin memisahkan string berdasarkan spasi. Di sini kita memiliki string yang telah dipisahkan. Java variabel bernama strMain terdiri dari beberapa kata: Selamat Datang di Guru99.

public class StrSplit3{
public static void main(String args[]){
String strMain = "Welcome to Guru99";
String[] arrSplit_3 = strMain.split("\\s");
    for (int i=0; i < arrSplit_3.length; i++){
      System.out.println(arrSplit_3[i]);
    }
  }
}

Output yang Diharapkan:

Welcome
to
Guru99

Pola \\s Cocok dengan satu karakter spasi. Gunakan \\s+ Sebaliknya, jika kata-kata dipisahkan oleh lebih dari satu spasi, setiap spasi tambahan akan menghasilkan elemen kosong.

Cara Mempertahankan String Kosong Saat Melakukan Pemisahan Java

Salah satu perilaku split() Hampir semua orang terkejut saat pertama kali bertemu dengannya: untaian kosong yang menjuntai dibuang begitu saja. Memisahkan "a,b,," Pencarian berdasarkan koma mengembalikan dua elemen, bukan empat, karena batas default nol akan membuang setiap kolom kosong di akhir array.

Hal ini penting setiap kali data bersifat posisional โ€” misalnya, baris CSV, di mana nilai yang hilang di bagian akhir masih menempati sebuah kolom. Hilangnya nilai kosong tersebut akan menggeser setiap indeks selanjutnya.

Lulus a negatif Batasan tersebut membuat mereka tetap:

String row = "Alpha,Beta,,";

// Default: trailing empty fields removed -> length 2
String[] a = row.split(",");
System.out.println(a.length);        // prints 2

// Negative limit: every field preserved -> length 4
String[] b = row.split(",", -1);
System.out.println(b.length);        // prints 4

Tiga aturan berlaku untuk setiap kasus. Batasnya adalah... nol, yang merupakan pengaturan default, menerapkan pola sebanyak mungkin lalu menghilangkan string kosong di bagian akhir. A positif Batasan tersebut menerapkan pola paling banyak pada batasan minus satu kali, sehingga elemen terakhir menyimpan sisa yang tidak tersentuh, persis seperti contoh sebelumnya dengan batasan 3 yang telah ditunjukkan. A negatif Limit menerapkan pola tersebut sebanyak mungkin dan mempertahankan setiap kolom kosong, termasuk kolom terakhir.

String kosong di awal berperilaku berbeda lagi: pemisahan ",a,b" selalu menghasilkan elemen pertama yang kosong terlepas dari batasnya, karena pola cocok pada posisi nol. Cegah hal ini dengan memangkas input, atau dengan memfilter hasilnya. susunan sebelum digunakan.

split() vs StringTokenizer vs Pattern.split(): Mana yang Harus Digunakan

Java Menawarkan tiga cara untuk memecah string menjadi beberapa bagian. Ketiganya berbeda dalam jenis pembatas yang diterima, nilai yang dikembalikan, dan apakah pola tersebut dikompilasi sekali atau dikompilasi ulang pada setiap panggilan, yang penting ketika pemisahan terjadi di dalam sebuah loop.

Aspek String.split() StringTokenizer Pola.pisahkan()
Pembatas Ekspresi reguler Kumpulan karakter tunggal Ekspresi reguler
Pengembalian Tali[] Token melalui enumerasi Tali[]
Pola yang disusun Pada setiap panggilan Tidak berlaku Sekali, lalu digunakan kembali
Mempertahankan kolom kosong Hanya dengan batas negatif Tak pernah Hanya dengan batas negatif
Status Direkomendasikan Warisan, dipertahankan untuk kompatibilitas. Disarankan dalam perulangan

penggunaan String.split() untuk pekerjaan sekali pakai biasa, karena paling singkat untuk ditulis dan mudah dibaca. Pra-kompilasi dengan Pattern.compile(",").split(text) Saat melakukan pemisahan di dalam sebuah loop, karena ekspresi reguler kemudian dikompilasi satu kali saja, bukan pada setiap iterasi. Hindari hal ini. StringTokenizer dalam kode baru; itu hanya tersisa untuk kompatibilitas mundur.

Umum Java Kesalahan pada fungsi split() dan Cara Memperbaikinya

Hampir setiap masalah dengan split() tracHal ini kembali pada salah satu dari dua penyebab: argumennya adalah ekspresi reguler dan bukan string literal, atau aturan pembatasan yang dijelaskan di atas membuang bidang secara tidak terduga. Setiap kesalahan di bawah ini menyebutkan gejalanya dan solusinya.

  • Memisahkan berdasarkan titik akan menghasilkan array kosong: "1.2.3".split(".") Cocok dengan setiap karakter, karena titik adalah wildcard regex. Escape sebagai split("\\.").
  • Proses pemisahan pada pipa berperilaku aneh: Tanda pipa (|) berarti pergantian dalam regex. Gunakan escape untuk menandainya sebagai berikut: split("\\|").
  • Kesalahan tipe tidak kompatibel: hasil tersebut diberikan kepada sebuah StringDeklarasikan variabel sebagai String[].
  • Elemen pertama yang kosong secara tak terduga: Pembatas muncul di awal input. Pangkas string terlebih dahulu.
  • Nilai yang hilang di bagian akhir: Kolom kosong di bagian akhir diabaikan oleh batasan default. Lulus -1 sebagai argumen kedua.
  • NullPointerException: split() Dipanggil pada referensi null. Periksa apakah ada nilai null sebelum melakukan pemisahan, karena metode tersebut tidak dapat menanganinya.

Pertanyaan Umum Demo Slot

Gunakan kelas karakter, seperti pada split("[,;]"), yang akan terputus jika ada koma atau titik koma. Penggunaan bergantian juga berfungsi: split(",|;").

Ya. Bungkus array dengan Arrays.asList(text.split(",")) untuk tampilan ukuran tetap, atau new ArrayList<>(Arrays.asList(...)) ketika daftar tersebut perlu dimodifikasi di kemudian hari.

Ya. AI Alat ini menghasilkan pola kerja dari format yang dijelaskan dan menjelaskan setiap token. Uji hasilnya terhadap kasus-kasus ekstrem seperti kolom kosong dan nilai yang dikutip sebelum mempercayainya.

Asisten AI mengidentifikasi apakah penyebabnya adalah metakarakter yang tidak lolos, bidang akhir yang dibuang, atau pembatas awal, yang merupakan tiga penjelasan untuk panjang array yang tidak terduga.

Hanya untuk data sederhana. Tidak dapat menangani koma di dalam kolom yang dikutip atau pemisah baris yang tertanam, jadi pustaka CSV khusus lebih aman untuk file sebenarnya. Membacanya baris demi baris dengan Bufferpembaca ed sangat cocok dipadukan dengan perpustakaan semacam itu.

Ringkaslah postingan ini dengan: