Como Percorrer uma String

E aí pessoal! Beleza?
Tenho essa string pra percorrer:

[CarregarAtend{Contratos=[ListaContratos{Numero=400; Descricao=(400-A)net 1MB ; }]; Contatos=[ListaContatos{CodigoContato=36; NomeContato=Contato teste; }]; Complementos=[ListaComplementos{CodigoComplemento=500; NomeComplemento=Esposo(a); }, ListaComplementos{CodigoComplemento=600; NomeComplemento=Filho(a); }, ListaComplementos{CodigoComplemento=700; NomeComplemento=Irmão(a); }, ListaComplementos{CodigoComplemento=800; NomeComplemento=Mãe; }, ListaComplementos{CodigoComplemento=900; NomeComplemento=Neto(a); }, ListaComplementos{CodigoComplemento=1000; NomeComplemento=Pai; }, ListaComplementos{CodigoComplemento=1100; NomeComplemento=Primo(a); }, ListaComplementos{CodigoComplemento=1200; NomeComplemento=Sobrinho(a); }, ListaComplementos{CodigoComplemento=1300; NomeComplemento=Sogra(a); }, ListaComplementos{CodigoComplemento=1400; NomeComplemento=Sogro(a); }]; Topicos=[ListaTopicos{CodigoTopico=2; DescricaoTopico=Alterações no Cadastro; }]; }]

Como faço pra percorrer essa string e transformar ela numa lista no Java?

Para percorrer: imprima-a em papel comum, espalhe sobre o chão e caminhe sobre ela. Você pode percorrê-la em qualquer sentido.
Brincadeiras à parte, você pode utilizar o método split() que “reparte” a String em partes, de acordo com um parâmetro:
String ex = "a;b;c;d;e;f;"; String[] partes = ex.split(";");
Detalhe: o parâmetro passado ao método split é interpretado como um regex. Se você entende de regex, tranquilo, senão, cuidado com coisas como:
String ex = "a|b|c|d|e|"; String[] partes = ex.split("|");
Isso dará um resultado diferente do esperado.
Depois de “repartir”, Arrays.asList() resolve a segunda questão.

1 curtida

Valeu drsmachado! Deu certo :slight_smile:
E se eu quiser exibir só o conteúdo do “DescricaoTopico”, como eu faço? Por exemplo, fazer uma lista só com o conteúdo do “descricaoTopico”, ali no caso só tem o “Alterações no Cadastro”, se tivesse mais, como eu faria pra exibir em formato de lista?

Opa, que ótimo que funcionou.
Bom, aí você pode pegar cada “parte” e, novamente, “repartir”, de acordo com tua necessidade.
Também pode remover tudo o que precede o “DescricaoTopico”, dê uma olhada no método substring e no método indexOf(). Eles podem te ajudar a resolver este problema.

Beleza, vou dar uma olhada. Obrigado!