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