Wystarczy użyć odpowiedniej metody: String#split()
.
String string = "004-034556";
String[] parts = string.split("-");
String part1 = parts[0]; // 004
String part2 = parts[1]; // 034556
Pamiętaj, że to wyrażenie regularne , więc pamiętaj, aby w razie potrzeby unikać znaków specjalnych .
tam jest 12 znaków ze szczególnych znaczeń: odwrotny ukośnik \
, daszek ^
, znak dolara $
, okres lub kropka .
, bar lub rura pionowa symbol |
, znak zapytania ?
, gwiazdka lub gwiazda *
, znak plus +
, nawiasem otwierającym (
, nawiasem zamykającym )
oraz otwierający nawias kwadratowy [
, otwierający nawias klamrowy. {
Te znaki specjalne są często nazywane „metaznakami”.
Tak więc, jeśli chcesz podzielić na przykład okres / kropka .
, która oznacza „ dowolny znak ” w regex, użyć backslash\
uciec indywidualny znak specjalny jak tak split("\\.")
lub użyć klasę postaci[]
reprezentować znaki liter (y) jak tak split("[.]")
lub wykorzystanie Pattern#quote()
do uciec tak cały łańcuch split(Pattern.quote("."))
.
String[] parts = string.split(Pattern.quote(".")); // Split on period.
Aby wcześniej sprawdzić, czy ciąg zawiera określone znaki, po prostu użyj String#contains()
.
if (string.contains("-")) {
// Split it.
} else {
throw new IllegalArgumentException("String " + string + " does not contain -");
}
Uwaga: nie przyjmuje wyrażenia regularnego. W tym celu użyj String#matches()
zamiast tego.
Jeśli chcesz zachować podzielony znak w wynikowych częściach, skorzystaj z pozytywnego wyglądu . Jeśli chcesz, aby rozdzielony znak znalazł się po lewej stronie, użyj pozytywnego wyglądu za prefiksem ?<=
grupy na wzorze.
String string = "004-034556";
String[] parts = string.split("(?<=-)");
String part1 = parts[0]; // 004-
String part2 = parts[1]; // 034556
Jeśli chcesz, aby rozdzielony znak znalazł się po prawej stronie, użyj pozytywnego spojrzenia w przód, poprzedzając ?=
grupę wzorem.
String string = "004-034556";
String[] parts = string.split("(?=-)");
String part1 = parts[0]; // 004
String part2 = parts[1]; // -034556
Jeśli chcesz ograniczyć liczbę wynikowych części, możesz podać żądaną liczbę jako drugi argument split()
metody.
String string = "004-034556-42";
String[] parts = string.split("-", 2);
String part1 = parts[0]; // 004
String part2 = parts[1]; // 034556-42