Il suffit d'utiliser la méthode appropriée : String#split()
.
String string = "004-034556";
String[] parts = string.split("-");
String part1 = parts[0]; // 004
String part2 = parts[1]; // 034556
Notez que cela prend un expression régulière alors n'oubliez pas de vous échapper caractères spéciaux si nécessaire.
là sont 12 caractères avec des significations spéciales : la barre oblique inversée (backslash) \
le caret ^
le signe du dollar $
le point ou la virgule .
la barre verticale ou le symbole du tuyau |
le point d'interrogation ?
l'astérisque ou l'étoile *
le signe plus +
la parenthèse ouvrante (
la parenthèse fermante )
et le crochet d'ouverture [
l'accolade ouvrante {
Ces caractères spéciaux sont souvent appelés "métacaractères".
Ainsi, si vous voulez diviser sur, par exemple, période/point .
ce qui signifie " tout caractère "dans une expression rationnelle, utilisez soit barre oblique inversée \
pour échapper au caractère spécial individuel, comme suit split("\\.")
ou utiliser classe de caractères []
pour représenter un ou plusieurs caractères littéraux, comme suit split("[.]")
ou utiliser Pattern#quote()
pour échapper à la chaîne entière, comme suit split(Pattern.quote("."))
.
String[] parts = string.split(Pattern.quote(".")); // Split on period.
Pour tester au préalable si la chaîne de caractères contient un ou plusieurs caractères, il suffit d'utiliser String#contains()
.
if (string.contains("-")) {
// Split it.
} else {
throw new IllegalArgumentException("String " + string + " does not contain -");
}
Notez que cela ne prend pas d'expression régulière. Pour cela, utilisez String#matches()
à la place.
Si vous souhaitez conserver le caractère divisé dans les parties résultantes, utilisez la fonction regard positif . Si vous voulez que le caractère divisé se retrouve dans la partie gauche, utilisez un lookbehind positif en préfixant ?<=
sur le motif.
String string = "004-034556";
String[] parts = string.split("(?<=-)");
String part1 = parts[0]; // 004-
String part2 = parts[1]; // 034556
Dans le cas où vous voulez que le caractère divisé se retrouve à droite, utilisez un lookahead positif en préfixant ?=
sur le motif.
String string = "004-034556";
String[] parts = string.split("(?=-)");
String part1 = parts[0]; // 004
String part2 = parts[1]; // -034556
Si vous souhaitez limiter le nombre de pièces résultantes, vous pouvez fournir le nombre souhaité en tant que deuxième argument de la commande split()
méthode.
String string = "004-034556-42";
String[] parts = string.split("-", 2);
String part1 = parts[0]; // 004
String part2 = parts[1]; // 034556-42