Chỉ cần sử dụng phương pháp thích hợp : String#split().
String string = "004-034556";
String[] parts = string.split("-");
String part1 = parts[0]; // 004
String part2 = parts[1]; // 034556
Lưu ý rằng điều này cần một biểu thức chính quy , vì vậy hãy nhớ thoát các ký tự đặc biệt nếu cần thiết.
có 12 ký tự với ý nghĩa đặc biệt: dấu gạch chéo ngược \, dấu mũ ^, ký hiệu đô la $, dấu chấm hoặc dấu chấm ., thanh dọc hoặc ký hiệu ống |, dấu hỏi ?, dấu hoa thị hoặc dấu sao *, dấu cộng +, dấu ngoặc đơn mở (, dấu ngoặc đơn đóng) và dấu ngoặc vuông mở [, dấu ngoặc nhọn mở {, Những ký tự đặc biệt này thường được gọi là "siêu ký tự".
Vì vậy, nếu bạn muốn phân tách trên ví dụ: period / dot .có nghĩa là " bất kỳ ký tự " nào trong regex, hãy sử dụng dấu gạch chéo ngược\ để thoát ký tự đặc biệt như vậy split("\\.")hoặc sử dụng lớp ký tự[] để thể hiện (các) ký tự chữ như vậy split("[.]")hoặc sử dụngPattern#quote() để thoát khỏi toàn bộ chuỗi như vậy split(Pattern.quote(".")).
String[] parts = string.split(Pattern.quote(".")); // Split on period.
Để kiểm tra trước nếu chuỗi chứa (các) ký tự nhất định, chỉ cần sử dụng String#contains() .
if (string.contains("-")) {
// Split it.
} else {
throw new IllegalArgumentException("String " + string + " does not contain -");
}
Lưu ý, điều này không có một biểu thức thông thường. Cho rằng, sử dụngString#matches() thay thế.
Nếu bạn muốn giữ lại ký tự phân tách trong các phần kết quả, thì hãy sử dụng giao diện tích cực . Trong trường hợp bạn muốn có ký tự phân tách kết thúc ở phía bên tay trái, hãy sử dụng giao diện tích cực theo ?<=nhóm tiền tố trên mẫu.
String string = "004-034556";
String[] parts = string.split("(?<=-)");
String part1 = parts[0]; // 004-
String part2 = parts[1]; // 034556
Trong trường hợp bạn muốn có ký tự phân tách kết thúc ở phía bên tay phải, hãy sử dụng giao diện tích cực bằng cách thêm tiền tố ?= nhóm trên mẫu.
String string = "004-034556";
String[] parts = string.split("(?=-)");
String part1 = parts[0]; // 004
String part2 = parts[1]; // -034556
Nếu bạn muốn giới hạn số phần kết quả, thì bạn có thể cung cấp số mong muốn làm đối số thứ hai của split()phương thức.
String string = "004-034556-42";
String[] parts = string.split("-", 2);
String part1 = parts[0]; // 004
String part2 = parts[1]; // 034556-42