| Autor |
Mensagem |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 23/06/2003 17:28:27
|
fenrir
JavaEvangelist
Membro desde: 26/09/2002 13:06:19
Mensagens: 328
Localização: São Paulo
Offline
|
Tenho estas 3 String:
- Um exército portando o estandarte do Feiticeiro Cego sob o comando do(a) Veterano Leärdinoth está Aqui.
- Uma esquadra portando o estandarte dos Corsários sob o comando do(a) Veterano Teldurmeir está Aqui.
- Um vasto exército portando o estandarte dos Corsários sob o comando do(a) Lorde Angamaitë está Aqui.
As Strings são bem parecidas, e eu quero pegar delas duas informações: a nação (no caso, Feiticeiro Cego e Corsários) e o nome do personagem (Veterano Leärdinoth, Veterano Teldurmeir, etc.).
Há alguma forma de, através de expressões regulares, eu conseguir pegar essas informações? Ou através de qualquer outra forma mais "automatizada" do que um monte de if's?
|
|
|
 |
|
|
![[Post New]](/templates/default/images/icon_minipost_new.gif) 23/06/2003 22:01:23
|
louds
Moderador
![[Avatar]](/images/avatar/1e48c4420b7073bc11916c6c1de226bb.jpg)
Membro desde: 29/04/2003 23:09:15
Mensagens: 4061
Localização: São Paulo
Offline
|
Um exército portando o estandarte do Feiticeiro Cego sob o comando do(a) Veterano Leärdinoth está Aqui.
Um regexp +/- assim não funcionaria:
?
|
http://www.kumpera.net/blog/
http://www.mono-project.com/
"Each individual should work for himself. People will not sacrifice themselves for the company. They come to work at the company to enjoy themselves."
Soichiro Honda |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 24/06/2003 13:23:25
|
fenrir
JavaEvangelist
Membro desde: 26/09/2002 13:06:19
Mensagens: 328
Localização: São Paulo
Offline
|
O meu maior problema não é exatamente validar a String, mas sim pegar as informações dela, sem que EU precise fazer um parse nela.
Pensei em usar expressões regulares porque isso terá que funcionar para outros idiomas também. Mas não sei se efetivamente isso é possível...
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 24/06/2003 16:59:31
|
dukejeffrie
Virtual Machine Man
![[Avatar]](/images/avatar/c74d97b01eae257e44aa9d5bade97baf.png)
Membro desde: 21/08/2002 03:53:28
Mensagens: 661
Offline
|
Expressoes regulares servem quando seu texto é regular.
Você tem que saber o que é fixo no seu texto. A partir das 3 strings acima, o que é fixo é o seguinte:
Pelo jeito que vc escreveu, Aqui também me parece uma variável.
Talvez seja mais interessante vc atacar do outro lado, o que produz a String. Se vc pode mexer do lado de lá, é bem mais fácil produzir uma lista de strings em vez de uma string só. Mesmo porque, dependendo da língua, suas palavras podem não estar na mesma ordem.
Se você tiver um pouco de paciência, pode no entanto desenvolver algo mais robusto usando classes do pacote java.text, MessageFormat e ChoiceFormat. Dá bastante trabalho, mas vc pode mexer com Locales com facilidade e mexer com a mensagem nas duas direções (parsing e formatting).
boa sorte!!
[]s
|
Brevity is the soul of wit |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 24/06/2003 17:09:45
|
fenrir
JavaEvangelist
Membro desde: 26/09/2002 13:06:19
Mensagens: 328
Localização: São Paulo
Offline
|
Eu não tenho como mexer na criação da String, pois ela é retirada de um PDF!
Ou seja, não tenho acesso à fonte, apenas tenho o "produto final".
Mas eu consegui fazer o que queria. Este código retorna exatamente o que eu preciso:
|
|
|
 |
|
|