Просто используйте соответствующий метод: String#split()
.
String string = "004-034556";
String[] parts = string.split("-");
String part1 = parts[0]; // 004
String part2 = parts[1]; // 034556
Обратите внимание, что для этого требуется регулярное выражение, поэтому не забудьте при необходимости экранировать специальные символы.
имеется 12 символов со специальными значениями: обратная косая черта \
, каретка ^
, знак доллара. $
, точка или точка .
, вертикальная черта или вертикальная черта |
, знак вопроса ?
, звездочка или звезда *
, знак плюса +
, открывающая скобка (
, закрывающая скобка )
и открывающая квадратная скобка [
, открывающая фигурная скобка {
. Эти специальные символы часто называют «метасимволами».
Итак, если вы хотите разделить, например, период / точка .
, что означает "любой символ" в регулярном выражении, используйте либо обратная косая черта \
, чтобы экранировать отдельный специальный символ, например split("\\.")
, или используйте символьный класс []
для представления буквальных символов, подобных этому split("[.]")
, или используйте _ 20_, чтобы экранировать всю строку так split(Pattern.quote("."))
.
String[] parts = string.split(Pattern.quote(".")); // Split on period.
Чтобы заранее проверить, содержит ли строка определенные символы, просто используйте _ 23_.
if (string.contains("-")) {
// Split it.
} else {
throw new IllegalArgumentException("String " + string + " does not contain -");
}
Обратите внимание, это не требует регулярного выражения. Для этого используйте String#matches()
вместо этого.
Если вы хотите сохранить разделенный символ в результирующих частях, используйте положительный поиск а>. Если вы хотите, чтобы разделенный символ попадал в левую часть, используйте положительный просмотр назад, добавив префикс ?<=
group в шаблоне.
String string = "004-034556";
String[] parts = string.split("(?<=-)");
String part1 = parts[0]; // 004-
String part2 = parts[1]; // 034556
Если вы хотите, чтобы разделенный символ попадал в правую часть, используйте положительный просмотр вперед, добавив префикс ?=
group в шаблоне.
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
person
BalusC
schedule
14.08.2010