Просто используйте подходящий метод 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