Cuidado com isso, primeiro você deve procurar por padrões <-
o que você quer dividir provavelmente ele deve conter alguma coisa em padrão
por exemplo imagine um livro ele tem uma estrutura de parágrafos (qual é o padrão ?)
1º começa com letra maiúscula
2º termina com "."(ponto)
3º depois do ponto a linha tem que terminar
isso é um padrão existe um negocio chamado de "Expressões Regulares" (ou abreviado "regex") a partir dele você determina um padrão de busca e ele procura por esse padrão depois de achado você pode fazer várias coisas
Por exemplo imagine que gostaríamos de pegar cada paragrafo e colocar num arquivo você criaria o padrão de um paragrafo e dividiria os itens encontrados.
Falando em Java agora :
O pacote java java.util.regex da suporte para o uso do regex.
mas para isso funcionar você precisa definir o padrão, vou da um outro exemplo de padrão Email
o que que todo email tem ?
se você olhar todo email é + ou - assim
ahuahu@ahuahu.ahu
observe que todo email tem o @ e um ponto sendo necessariamente o @ tem que vir primeiro além disso depois do arroba tem outros limites, não se pode usar caracteres especias depois de arroba como o acentos, trena, coxetes parenteses, etc …
alem disso antes do arroba precisa ter necessariamente uma letra, entre o arroba e o ponto tem que ter pelo menos uma letra também, depois do ponto tem que ter pelo menos 2 letrar, tudo isso forma um padrão de um Email
esse padrão escrito para regex ficaria assim
([\w,\.]+)@(\w+)(\.{1}\w+){1,2}
sim isso é complicado pra caralho de entender, se você não conhece o regex vá estudar, e compre livros, por que ele é um assunto muito grande e importante
agora antes de ir eu vou posta um código java usando esse regex que mostrei xD
String temp = "PGh0bWw+PGhlYWQ+PG1ldGEgaHR0cC1lcXVpdj0iQ29udGVudC1UeXBlIiBjb250ZW50PSJ0ZXh0\n"
+ "L2h0bWw7IGNoYXJzZXQ9VVRGLTgiPjwvaGVhZD48Ym9keSBjb250ZW50ZWRpdGFibGU9InRydWUi\n"
+ "Pjxicj48YnI+ahuahu@heaahe.comPGJyPkNvbWluZyBzb29uOiBiaWdnZXIgZHJvbmVzIDxicj5TQUxPTiB8IDE1IERF\n"
+ "IE1BSU8gREUgMjAxMjxicj5odHRwOi8vcHVsc2UubWUvcy85aFhzcCA8YnI+caralho@_como.faz.isoPGJyPlRoZSBGQUEg\n"
+ "aGFzIGRlY2lkZWQgdG8gYWxsb3cgbGFyZ2VyIGRyb25lcyBmbHkgaW4gVS5TLiBhaXJzcGFjZSBs\n"
+ "ZWlhIG1haXM8YnI+PGJyPi0tLTxicj48YnI+aHR0cDovL3-victor@masssa.comB1bHNlLm1lPGJyPjxicj5FbnZpYWRv\n"
+ "IGRvIHRhYmxldCBTYW1zdW5nIDwvYm9keT48L2h0bWw+\n";
Matcher mat = Pattern.compile("([\w,\.]+)@(\w+)(\.{1}\w{2,3}){1,2}").matcher(temp);
while(mat.find()){
System.out.println("email : " + mat.group() + "\tusuario : " + mat.group(1) + "\tservidor : " + mat.group(2) + "\tterminação : " + mat.group(3));
}
aleatoriamente eu coloquei 3 emails nessa String, usando o regex eu consigo pegar eles
Saida :
email : ahuahu@heaahe.com usuario : ahuahu servidor : heaahe terminação : .com
email : caralho@_como.faz.iso usuario : caralho servidor : _como terminação : .iso
email : victor@masssa.com usuario : victor servidor : masssa terminação : .com