Hanya menggunakan metode yang sesuai: String#split()
.
String string = "004-034556";
String[] parts = string.split("-");
String part1 = parts[0]; // 004
String part2 = parts[1]; // 034556
Perhatikan bahwa ini membutuhkan ekspresi reguler , jadi ingatlah untuk menghindar dari karakter khusus jika perlu.
ada 12 karakter dengan makna khusus: garis miring terbalik \
, tanda sisipan ^
, tanda dolar $
, titik atau titik .
, tanda garis vertikal atau pipa |
, tanda tanya ?
, tanda bintang atau bintang *
, tanda tambah +
, tanda kurung pembuka (
, tanda kurung penutup )
, dan kurung siku [
pembuka {
, kurung kurawal pembuka , Karakter khusus ini sering disebut "metacharacters".
Jadi, jika Anda ingin membagi misalnya periode / titik .
yang berarti " karakter apa pun " di regex, gunakan backslash\
untuk melarikan diri dari karakter khusus individu seperti itu split("\\.")
, atau gunakan kelas karakter[]
untuk mewakili karakter literal seperti itu split("[.]")
, atau gunakan Pattern#quote()
untuk lepaskan seluruh string seperti itu split(Pattern.quote("."))
.
String[] parts = string.split(Pattern.quote(".")); // Split on period.
Untuk menguji sebelumnya jika string berisi karakter tertentu, gunakan saja String#contains()
.
if (string.contains("-")) {
// Split it.
} else {
throw new IllegalArgumentException("String " + string + " does not contain -");
}
Catatan, ini tidak mengambil ekspresi reguler. Untuk itu, gunakan String#matches()
saja.
Jika Anda ingin mempertahankan karakter pemisah di bagian yang dihasilkan, maka manfaatkan pencarian positif . Jika Anda ingin memiliki karakter split berakhir di sisi kiri, gunakan tampilan positif di belakang dengan mengawali ?<=
grup pada pola.
String string = "004-034556";
String[] parts = string.split("(?<=-)");
String part1 = parts[0]; // 004-
String part2 = parts[1]; // 034556
Jika Anda ingin memiliki karakter split untuk berakhir di sisi kanan, gunakan lookahead positif dengan awalan ?=
grup pada polanya.
String string = "004-034556";
String[] parts = string.split("(?=-)");
String part1 = parts[0]; // 004
String part2 = parts[1]; // -034556
Jika Anda ingin membatasi jumlah bagian yang dihasilkan, maka Anda dapat memberikan angka yang diinginkan sebagai argumen ke-2 split()
metode.
String string = "004-034556-42";
String[] parts = string.split("-", 2);
String part1 = parts[0]; // 004
String part2 = parts[1]; // 034556-42