Basta utilizzare il metodo appropriato: String#split()
.
String string = "004-034556";
String[] parts = string.split("-");
String part1 = parts[0]; // 004
String part2 = parts[1]; // 034556
Nota che questo richiede un'espressione regolare , quindi ricorda di scappare da caratteri speciali se necessario.
ci sono 12 caratteri con significati speciali: la barra rovesciata \
, il cursore ^
, il simbolo del dollaro $
, il punto o il punto .
, la barra verticale o il simbolo della pipa |
, il punto interrogativo ?
, l'asterisco o la stella *
, il segno più +
, la parentesi aperta (
, la parentesi chiusa )
e la parentesi quadra aperta [
, la parentesi graffa aperta {
, Questi caratteri speciali sono spesso chiamati "metacaratteri".
Quindi, se si desidera dividere per esempio periodo / puntino .
che significa " qualsiasi carattere " in regex, utilizzare uno backslash\
per sfuggire il carattere speciale individuale in questo modo split("\\.")
, o l'uso classe del personaggio[]
per rappresentare carattere letterale (s) in questo modo split("[.]")
, o l'uso Pattern#quote()
di sfuggire all'intera stringa in questo modo split(Pattern.quote("."))
.
String[] parts = string.split(Pattern.quote(".")); // Split on period.
Per verificare in anticipo se la stringa contiene determinati caratteri, basta usare String#contains()
.
if (string.contains("-")) {
// Split it.
} else {
throw new IllegalArgumentException("String " + string + " does not contain -");
}
Nota, questo non richiede un'espressione regolare. Per quello, usa String#matches()
invece.
Se desideri conservare il carattere diviso nelle parti risultanti, utilizza una ricerca positiva . Nel caso in cui si desideri che il carattere diviso finisca nella parte sinistra, utilizzare lookbehind positivo prefissando il ?<=
gruppo sul modello.
String string = "004-034556";
String[] parts = string.split("(?<=-)");
String part1 = parts[0]; // 004-
String part2 = parts[1]; // 034556
Nel caso in cui si desideri che il carattere diviso finisca nella parte destra, utilizzare un lookahead positivo prefissando il ?=
gruppo sul modello.
String string = "004-034556";
String[] parts = string.split("(?=-)");
String part1 = parts[0]; // 004
String part2 = parts[1]; // -034556
Se desideri limitare il numero di parti risultanti, puoi fornire il numero desiderato come secondo argomento del split()
metodo.
String string = "004-034556-42";
String[] parts = string.split("-", 2);
String part1 = parts[0]; // 004
String part2 = parts[1]; // 034556-42