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.
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.
fiaux
Julho 22, 2008, 10:55pm
#3
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.
Você pode usar regex…
De uma olhada na API do java.
Alguém tem um material bom de ERs ?? em java
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
sephct
Julho 24, 2008, 2:09pm
#8
[quote=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 ;-)[/quote]
Isso é expressão regular? Onde tu aprende? Realmente muito util se souber usar.