Substituir uma letra em uma string

2 respostas
M

Como eu faço para substituir uma letra em uma string?

2 Respostas

R

Marcelo,
a classe String tem o metodo replace…

[]'s

S

Você pode tentar usar algo do tipo à baixo. Implemente o código de acordo com sua necessidade, mas tome cuidado, alguns erros podem surgir.

public class Teste1{
    
   private static String palavra;
   private static char matriz[];
   
   static{
   	/*para não acontecer de invocar os métodos
   	 * getPalavra, mudaLetra, getPalavraMudada
   	 * sem ter adicionado uma palavra qualquer,
   	 * coloca-se um texto padrão.
   	 */
   	Teste1.palavra="Inserir Palavra";
   }
   
   public static String getPalavraMudada(){
   	 String copypalavra="";
   	 //percorre todas as posições da matriz
   	 //e cada caracter armazena na String palavra;
   	 for(int i=0; i < matriz.length; i++){
   	   copypalavra += matriz[i];
   	 }
   	 return copypalavra;
   }
   	 

   public static void setPalavra(String palavra){
      Teste1.palavra = palavra;
   }
    
    public static String getPalavra(){
        return Teste1.palavra;
    }

    public static void mudaLetra(int posicao, char novaLetra){
      String palavra=getPalavra();
      //  dimensiona a matriz de acordo com o
      //tamanho da palavra
      matriz = new char[palavra.length()];
       
      //adicionar letras na matriz;
      	for(int i=0; i < matriz.length; i++){
      		//charAt é um método que retorna
      		//o caracter da posição passada 
      		//por parâmetro do tipo inteiro
      		matriz[i]=palavra.charAt(i);
      	}
      //adicionar nova letra
      	for(int i=0; i < matriz.length; i++){
      		/*aqui, caso vc queira mudar a primeira letra,
      		 * então passará como parâmetro "1", indicando 
      		 * primeira letra. O problema é que prefiro 
      		 * iniciar várias sempre com zero e, também, as
      		 * matrizes, quase sempre em suas inicializações,
      		 * são indicadas em sua primeira posição com parametro 
      		 * 0, ou seja, 1ª posiçao = à matriz[0].
      		 * por isso é necessário o if à baixo acrescendo
      		 * 1 à i.
      		 */
      		if((i+1)==posicao){
      			matriz[i] = novaLetra;
      			//nova palavra é armazenada
      			setPalavra(getPalavraMudada());
      			break;
      		}else{
      			continue;
      		}
      	}
       
    }
    
    public static void main(String args[]){
    	System.out.println(getPalavra());
        setPalavra("Portal Java");
        System.out.println(getPalavra());
    	mudaLetra(1, 'V');
    	System.out.println(getPalavra());
    	mudaLetra(7, '\n');
    	System.out.println(getPalavra());
    }
}
Criado 28 de novembro de 2006
Ultima resposta 29 de nov. de 2006
Respostas 2
Participantes 3