Substituir o próximo caractere repetido. Como faço?

7 respostas
S

Olá, Pessoal,

Sou novo aqui, mas vamos direto ao ponto.

Como posso, em Java, substituir o segundo caractere repetido ?

ex.:

Tenho uma frase: “O Rato Roeu”.

Como posso retirar apenas o segundo “R” ?

"Queria que o programa passasse pelo primeiro e apagasse somente o segundo… ou passasse pelo primeiro “o” e apagasse apenas o segundo.

7 Respostas

D

Os métodos da classe String podem ajudar.

public String removeSegundoCharRepetido( String txt, char c ) { int i1 = txt.indexOf(c); if( i1 > -1 ) { int i2 = txt.substring(i1+1).indexOf(c); if( i2 > i1 ) { return txt.substring(0,i2) + txt.substring(i2+1); } } return txt; }

Não sei se está 100% certo, mas é bem por aí. Mas pode ser melhorado.

F

Você quer apagar apenas o segundo, ou o último encontrado? Ou todos após o primeiro?

Dê uma olhada na api de String, que te dá métodos para encontrar a primeira ocorrência, a última ocorrência, dar replace de caracteres, etc. Ou então estude regular expression para fazer algo mais poderoso se for o caso.

C

Você pode usar regex…

De uma olhada na API do java.

S

Alguém tem um material bom de ERs ?? em java

D

http://java.sun.com/docs/books/tutorial/essential/regex/

P

substitui isso:

^([^R]R[^R])R

por isso

\1

Ou seja

substitui “tudo antes do segundo R, mais o segundo R” por “tudo antes do segundo R”

Tem q trabalhar com groups e backreference. facil :wink:

S

peczenyj:
substitui isso:

^([^R]R[^R])R

por isso

\1

Ou seja

substitui “tudo antes do segundo R, mais o segundo R” por “tudo antes do segundo R”

Tem q trabalhar com groups e backreference. facil ;-)

Isso é expressão regular? Onde tu aprende? Realmente muito util se souber usar.

Criado 22 de julho de 2008
Ultima resposta 24 de jul. de 2008
Respostas 7
Participantes 6