Просто используйте соответствующий метод: String#split()
.
String string = "004-034556";
String[] parts = string.split("-");
String part1 = parts[0]; // 004
String part2 = parts[1]; // 034556
Обратите внимание, что для этого требуется регулярное выражение , поэтому не забудьте экранировать specialсимволы при необходимости.
там - это 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()
.
Если вы хотите сохранить разделенный символ в результирующих частях, используйте Positive Lookaround .Если вы хотите, чтобы разделенный символ заканчивался в левой части, используйте положительный вид сзади, добавив к шаблону группу ?<=
.
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
Если вы хотите ограничить количество результирующих деталей, вы можете указать желаемое число как 2-е.аргумент метода split()
.
String string = "004-034556-42";
String[] parts = string.split("-", 2);
String part1 = parts[0]; // 004
String part2 = parts[1]; // 034556-42