Просто використовуйте відповідний метод 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