Просто используйте подходящий метод String#split().
String string = "004-034556";
String[] parts = string.split("-");
String part1 = parts[0]; // 004
String part2 = parts[1]; // 034556
Обратите внимание, что для этого требуется регулярное выражение , поэтому при необходимости не используйте специальные символы .
Есть 12 символов со специальным значением: обратный слеш \, каретка ^, знак доллара $, точка или точка ., символ вертикальной черты или трубы |, знак вопроса ?, звездочка или звезда *, знак плюс +, открывающая скобка (, закрывающая скобка )и открывающая квадратная скобка [, открывающаяся фигурная скобка. {Эти специальные символы часто называют «метасимволами».
Поэтому, если вы хотите разделить, например, точку / точка, .что означает « любой символ » в регулярном выражении, используйте обратную косую черту\ для экранирования отдельного специального символа, например, так 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