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