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 une expression régulière , pensez donc à échapper les caractères spéciaux si nécessaire.
il y a 12 caractères avec des significations spéciales: la barre oblique inverse \
, le ^
signe d' insertion , le signe dollar $
, la période ou le point .
, la barre verticale ou le symbole de la pipe |
, le point d'interrogation ?
, l'astérisque ou l'étoile *
, le signe plus +
, la parenthèse ouvrante (
, la parenthèse fermante )
, et le crochet ouvrant [
, l'accolade ouvrante {
, Ces caractères spéciaux sont souvent appelés "métacaractères".
Donc, si vous voulez diviser par exemple période / point .
qui signifie " n'importe quel caractère " dans l'expression régulière, utilisez soit une barre oblique inversée\
pour échapper au caractère spécial individuel comme tel split("\\.")
, soit utilisez la classe de caractères[]
pour représenter des caractères littéraux comme tels split("[.]")
, ou utilisez Pattern#quote()
pour échapper à la chaîne entière comme ça split(Pattern.quote("."))
.
String[] parts = string.split(Pattern.quote(".")); // Split on period.
Pour tester au préalable si la chaîne contient certains caractères, utilisez simplement 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()
plutôt.
Si vous souhaitez conserver le caractère scindé dans les parties résultantes, utilisez la recherche positive . Dans le cas où vous souhaitez que le caractère divisé se retrouve dans la partie gauche, utilisez le lookbehind positif en préfixant le ?<=
groupe 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 souhaitez que le caractère divisé se retrouve dans le côté droit, utilisez l'anticipation positive en préfixant le ?=
groupe 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é comme 2ème argument de la split()
méthode.
String string = "004-034556-42";
String[] parts = string.split("-", 2);
String part1 = parts[0]; // 004
String part2 = parts[1]; // 034556-42