Просто використовуйте відповідний метод String#split().
String string = "004-034556";
String[] parts = string.split("-");
String part1 = parts[0]; // 004
String part2 = parts[1]; // 034556
Зауважте, що це має регулярний вираз , тому не забудьте уникнути спеціальних символів, якщо це необхідно.
є 12 символів зі спеціальними значеннями: зворотний слеш \, каретка ^, знак долара $, період або точка ., вертикальна риса або труби символ |, знак питання ?, зірочка або зірка *, знак плюс +, відкриває дужкою (, дужку ), і квадратну дужку [, що відкривається, фігурну фігурну дужку , що відкривається {, Ці спеціальні символи часто називають "метахарактеристиками".
Отже, якщо ви хочете розділити на напр. Period / крапка, .що означає " будь-який символ " в регулярному вираженні, використовуйте або зворотну косу рису,\ щоб уникнути окремого спеціального символу, як, наприклад split("\\."), або використовуйте клас символів,[] щоб представити буквальні символи, як-от так split("[.]"), або використовуйте Pattern#quote()для вирватися з усієї струни так split(Pattern.quote(".")).
String[] parts = string.split(Pattern.quote(".")); // Split on period.
Щоб заздалегідь перевірити, чи рядок містить певні символи, просто скористайтеся String#contains().
if (string.contains("-")) {
// Split it.
} else {
throw new IllegalArgumentException("String " + string + " does not contain -");
}
Зауважте, це не приймає регулярного вираження. Для цього використовуйте String#matches()замість цього.
Якщо ви хочете зберегти розділений символ у отриманих частинах, скористайтеся позитивним орієнтуванням . У випадку, якщо ви хочете, щоб розділений символ опинився в лівій частині, використовуйте позитивний погляд позаду, ?<=встановивши групу за схемою.
String string = "004-034556";
String[] parts = string.split("(?<=-)");
String part1 = parts[0]; // 004-
String part2 = parts[1]; // 034556
Якщо ви хочете, щоб розділений символ закінчився в правій частині, використовуйте позитивну підказку, префіксуючи ?=групу на шаблоні.
String string = "004-034556";
String[] parts = string.split("(?=-)");
String part1 = parts[0]; // 004
String part2 = parts[1]; // -034556
Якщо ви хочете обмежити кількість отриманих деталей, тоді ви можете надати потрібне число як другий аргумент split()методу.
String string = "004-034556-42";
String[] parts = string.split("-", 2);
String part1 = parts[0]; // 004
String part2 = parts[1]; // 034556-42