Verwenden Sie einfach die entsprechende Methode : String#split()
.
String string = "004-034556";
String[] parts = string.split("-");
String part1 = parts[0]; // 004
String part2 = parts[1]; // 034556
Beachten Sie, dass dies ein regulärer Ausdruck ist. Denken Sie daher daran, bei Bedarf Sonderzeichen zu maskieren.
Es gibt 12 Zeichen mit besonderen Bedeutungen: den Backslash \
, das Caret ^
, das Dollarzeichen $
, den Punkt oder Punkt .
, den vertikalen Balken oder das Rohrsymbol |
, das Fragezeichen ?
, das Sternchen oder den Stern *
, das Pluszeichen +
, die öffnende Klammer (
, die schließende Klammer )
und die öffnende eckige Klammer [
, die öffnende geschweifte Klammer {
. Diese Sonderzeichen werden oft als "Metazeichen" bezeichnet.
Wenn Sie also z. B. Punkt / Punkt teilen möchten, .
was " beliebiges Zeichen " in Regex bedeutet, verwenden Sie entweder einen umgekehrten Schrägstrich\
, um das einzelne Sonderzeichen so zu umgehen split("\\.")
, oder verwenden Sie die Zeichenklasse[]
, um Literalzeichen wie diese darzustellen split("[.]")
, oder verwenden Sie Pattern#quote()
to entkomme der ganzen Schnur so split(Pattern.quote("."))
.
String[] parts = string.split(Pattern.quote(".")); // Split on period.
Um vorher zu testen, ob die Zeichenfolge bestimmte Zeichen enthält, verwenden Sie einfach String#contains()
.
if (string.contains("-")) {
// Split it.
} else {
throw new IllegalArgumentException("String " + string + " does not contain -");
}
Beachten Sie, dass dies keinen regulären Ausdruck erfordert. Verwenden Sie dazu String#matches()
stattdessen.
Wenn Sie das geteilte Zeichen in den resultierenden Teilen beibehalten möchten , verwenden Sie einen positiven Lookaround . Wenn Sie möchten, dass das geteilte Zeichen auf der linken Seite landet, verwenden Sie ein positives Lookbehind, indem Sie ?<=
dem Muster eine Gruppe voranstellen .
String string = "004-034556";
String[] parts = string.split("(?<=-)");
String part1 = parts[0]; // 004-
String part2 = parts[1]; // 034556
Wenn Sie möchten, dass das geteilte Zeichen auf der rechten Seite landet, verwenden Sie einen positiven Lookahead, indem Sie ?=
dem Muster eine Gruppe voranstellen.
String string = "004-034556";
String[] parts = string.split("(?=-)");
String part1 = parts[0]; // 004
String part2 = parts[1]; // -034556
Wenn Sie die Anzahl der resultierenden Teile begrenzen möchten, können Sie die gewünschte Anzahl als zweites Argument der split()
Methode angeben.
String string = "004-034556-42";
String[] parts = string.split("-", 2);
String part1 = parts[0]; // 004
String part2 = parts[1]; // 034556-42