Manipulação de Strings - Substituição de Caracteres [Resolvido]  XML
Índice dos Fóruns » Java Básico
Autor Mensagem
fernandoeick
JavaEvangelist

Membro desde: 24/01/2007 14:18:48
Mensagens: 489
Localização: Campinas-SP
Offline

Bom Dia ao amigos do GUJ!

Venho aqui trazer um problema, que passei a noite pensando e não consegui resolver ainda. Eu preciso trazer em um JTextArea algumas facilidades para o cliente que vai digitar uma fórmula. Então, se ele digitar as letras C, L ou V, devo automaticamente inserir o "[" e o "]" e o cursor ficar posicionando entre os colchetes. Até aí blz (inclusive pedi ajuda aqui no fórum ontem). O cliente vai digitar entre os colchetes um número indeterminado de digitos. E Então, quando ele digitar +, -, * ou /, eu devo sair de dentro dos colchetes e inserir o operador digitado por ele fora do colchete.

Ou seja, mais ou menos assim: C[142]+V[133]*[121].

Segue o fragmento do meu código responsável por esta lógica:


Não sei se a maneira que fiz é a melhor. Mas está quase resolvendo meu problema. Como vocês podem ver, estou duplicando no segundo if o operador matemático digitado, para conseguir exibi-lo fora do colchetes (no final da String). Mas uma cópia do operador está ficando lá dentro do colchetes.

Então minha pergunta é: Como faço para tirar aquele operador que fica dentro do colchetes? Sabendo-se que sempre que eu encontrar o "]" na minha string eu quero remover o caracter anterior a ele (porque este será o operador que está sobrando.

Ex. de saída desejada: C[142]+V[133]*[121]
Saída Atual: C[142+]+V[133*]*[121]

Alguém me ajuda?

This message was edited 3 times. Last update was at 08/02/2008 09:34:05


Analista/Desenvolvedor Java
Graduado em Informática - Sistemas de Informação.
Sun Certified Java Programmer 6.0
Next Step: SCWCD 5

E dá-lhe Grêmio!
[MSN]
fernandoeick
JavaEvangelist

Membro desde: 24/01/2007 14:18:48
Mensagens: 489
Localização: Campinas-SP
Offline

Por incrivel que pareça, enquando escrevia aqui, foi surgindo a solução pra mim.

Consegui resolver. Criei duas novas strings e fiz o seguinte:

Eu sabia que queria remover sempre o caracter que aparecesse antes do "]". Mas este caracter também sempre o 3 caracter de trás para frente na String. Então fiz assim:


Em uma string peguei o texto que tinha até o "]" que é sempre t.length()-3 e na segunda string peguei do t.length()-2 até o t.length(). Juntei as duas strings novas e deu no texto final que eu queria.

Se alguém quiser conferir:



É isto!

Analista/Desenvolvedor Java
Graduado em Informática - Sistemas de Informação.
Sun Certified Java Programmer 6.0
Next Step: SCWCD 5

E dá-lhe Grêmio!
[MSN]
 
Índice dos Fóruns » Java Básico
Ir para:   
Powered by JForum 2.1.8 © JForum Team