Sólo tiene que utilizar el método apropiado: String#split()
.
String string = "004-034556";
String[] parts = string.split("-");
String part1 = parts[0]; // 004
String part2 = parts[1]; // 034556
Tenga en cuenta que esto toma una expresión regular , así que recuerde escapar de caracteres especiales si es necesario.
Hay 12 caracteres con significados especiales: la barra diagonal inversa \
, el ^
símbolo de intercalación , el signo de dólar $
, el punto o punto .
, el símbolo de barra o tubo vertical |
, el signo de interrogación ?
, el asterisco o la estrella *
, el signo más +
, el paréntesis de apertura (
, el paréntesis de cierre )
, y el corchete de apertura [
, la llave de apertura {
, estos caracteres especiales a menudo se denominan "metacaracteres".
Por lo tanto, si desea dividir, por ejemplo, punto / punto, .
que significa " cualquier carácter " en la expresión regular, use una barra diagonal inversa\
para escapar del carácter especial individual como tal split("\\.")
, o use la clase de caracteres[]
para representar caracteres literales como ese split("[.]")
, o use Pattern#quote()
para escapar de toda la cadena así split(Pattern.quote("."))
.
String[] parts = string.split(Pattern.quote(".")); // Split on period.
Para probar de antemano si la cadena contiene ciertos caracteres, simplemente use String#contains()
.
if (string.contains("-")) {
// Split it.
} else {
throw new IllegalArgumentException("String " + string + " does not contain -");
}
Tenga en cuenta que esto no toma una expresión regular. Para eso, use String#matches()
en su lugar.
Si desea conservar el carácter dividido en las partes resultantes, utilice una apariencia positiva . En caso de que desee que el carácter dividido termine en el lado izquierdo, use una mirada hacia atrás positiva al prefijar el ?<=
grupo en el patrón.
String string = "004-034556";
String[] parts = string.split("(?<=-)");
String part1 = parts[0]; // 004-
String part2 = parts[1]; // 034556
En caso de que desee que el carácter dividido termine en el lado derecho, use una búsqueda positiva al prefijar el ?=
grupo en el patrón.
String string = "004-034556";
String[] parts = string.split("(?=-)");
String part1 = parts[0]; // 004
String part2 = parts[1]; // -034556
Si desea limitar el número de partes resultantes, puede proporcionar el número deseado como segundo argumento del split()
método.
String string = "004-034556-42";
String[] parts = string.split("-", 2);
String part1 = parts[0]; // 004
String part2 = parts[1]; // 034556-42