Problema para substituir um caractere na string

3 respostas
C

Olá pessoal, sou novo por aqui e também sou novo em Java. Estou fazendo um jogo da forca para a faculdade, a princípio estava indo tudo bem, porém não consigo substituir apenas um caractere em uma string. Vou postar o exemplo que tentei fazer, mas nao funciona:

string palavra1 = “_______”;
char ca = caixa2.getText().charAt(0);

for ( int j = 0; j<caixa1.getText().length(); j++ ) {

if ( ca == (caixa1.getText().charAt(j)) ) {

palavra1.replace(palavra1.charAt(j), ca);

}

}

l6.setText(palavra1);

A caixa1 captura uma palavra por meio de uma JTextField, a palavra1 é uma string com o número de “_” correspondente ao número de letras da palavra capturada da caixa1.
Alguém teria alguma idéia para me ajudar?
Agradeço desde já.
Abraço!

3 Respostas

A

De fato esse replace substitui todas as ocorrências do caractere passado como primeiro argumento. Que tal tentar uma abordagem diferente? Crie um array contento os caracteres da palavra que você definir, então percorra o array fazendo a comparação de cada caractere com a letra que foi passada. Daí então você monta uma string concatenando um “_” em cada posição que não corresponde à letra que foi passada com as letras já encontradas…

W

tente assim:

.replace('char', 'char');

troque “char” pelo caractere que você quer substituir.
ele vai trocar o primeiro pelo segundo.

bem mais simples que usar a forma que você está fazendo. a não ser se for uma aplicação que requer mais trabalho… que não imagino o q seja.

se for trocar um caractere por outro é apenas fazer o que está no codigo que coloquei. espero que ajude.

C

Valeu pessoal!
Já consegui!
Abraços!

Criado 17 de junho de 2007
Ultima resposta 18 de jun. de 2007
Respostas 3
Participantes 3