Basta usar o método apropriado: String#split()
.
String string = "004-034556";
String[] parts = string.split("-");
String part1 = parts[0]; // 004
String part2 = parts[1]; // 034556
Observe que isso exige uma expressão regular ; lembre-se de escapar de caracteres especiais, se necessário.
existem 12 caracteres com significados especiais: a barra invertida \
, o ^
sinal de intercalação , o sinal de dólar $
, o ponto ou o ponto .
, o símbolo vertical da barra ou tubo |
, o ponto de interrogação ?
, o asterisco ou estrela *
, o sinal de mais +
, o parêntese de abertura (
, o parêntese de fechamento )
, e o colchete de abertura [
, o colchete de abertura {
. Esses caracteres especiais geralmente são chamados de "metacaracteres".
Portanto, se você deseja dividir, por exemplo, ponto / ponto .
que significa " qualquer caractere " na expressão regular, use a barra invertida\
para escapar do caractere especial individual como tal split("\\.")
ou use a classe de caractere[]
para representar o (s) caractere (s) literal (s) dessa forma split("[.]")
ou use Pattern#quote()
para escapar da corda inteira assim split(Pattern.quote("."))
.
String[] parts = string.split(Pattern.quote(".")); // Split on period.
Para testar antecipadamente se a string contém certos caracteres, use String#contains()
.
if (string.contains("-")) {
// Split it.
} else {
throw new IllegalArgumentException("String " + string + " does not contain -");
}
Observe que isso não requer uma expressão regular. Para isso, use em String#matches()
vez disso.
Se você deseja manter o caractere dividido nas partes resultantes, use uma pesquisa positiva . Caso você queira que o caractere de divisão termine no lado esquerdo, use um look positivo por trás, prefixando o ?<=
grupo no padrão.
String string = "004-034556";
String[] parts = string.split("(?<=-)");
String part1 = parts[0]; // 004-
String part2 = parts[1]; // 034556
Caso você deseje que o caractere dividido termine no lado direito, use um visual positivo, prefixando o ?=
grupo no padrão.
String string = "004-034556";
String[] parts = string.split("(?=-)");
String part1 = parts[0]; // 004
String part2 = parts[1]; // -034556
Se você deseja limitar o número de partes resultantes, pode fornecer o número desejado como o segundo argumento do split()
método.
String string = "004-034556-42";
String[] parts = string.split("-", 2);
String part1 = parts[0]; // 004
String part2 = parts[1]; // 034556-42