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