Dúvida em fazer a troca de caracteres

Pessoal tenho o seguinte problema, no programa que estou fazendo preciso verificar a string digitada pelo usuário e fazer a troca de certos caracteres especiais por outros que irei indicar. Ocorre que preciso verificar na string de 2 em 2 caracteres para que eu possa por exemplo trocar ED por 80. Para verificar uma a uma eu tenho o seguinte código:

String suaString2=Instrutor; char[] ch2 =suaString2.toCharArray(); for(int i=0;i<ch2.length;i++) { if(ch2[i]=='á') { ch2[i]='a'; } if(ch2[i]=='Á') { ch2[i]='A'; } } Acontece que como mencionei preciso verificar a string de 2 em 2 caracteres e quando encontrar os dois que procuro, preciso substituir por outros dois. Agradeço se alguém puder me dar uma força.>

faça com que o for caminhe de dois em dois

for(int i=0;i<ch2.length;i+=2) {
if((ch2[i]==‘E’)&&(ch2[i+1]==‘D’)) {
ch2[i]=‘8’;
}
}

E mais uma coisa. Não dá para modificar diretamente os caracteres em uma String, você precisa criar uma nova.

/* 1 */ String s = "aeiou";
/* 2 */ char[] c = s.toCharArray();
/* 3 */ c[0] = 'A';
/* 4 */ System.out.println (s); // imprime aeiou
/* 5 */ s = String.valueOf(c); 
/* 6 */ System.out.println (s); // imprime Aeiou

Na linha 2, c é uma cópia do array de caracteres que representa a String s. Não é o próprio array.
Na linha 5, estamos criando uma nova String com os caracteres alterados na linha 3.

Valeu pela dica andrelcvc, vou testar para ver se consigo fazer o que preciso. Abraço!

me digam uma coisa, pq não usar:

   String var = "aeiou";
   var = var.replaceAll("a","A");

:?:

Bah, valeu eduardo_lopes, desculpe a minha ignorância. Valeu mesmo cara. :oops:

q nada cara, o guj é pra essas coisas! :thumbup:

Pessoal consegui fazer o que queria utilizando o replaceAll, acontece que da maneira como estou fazendo ele percorre a string a procura dos caracteres que estou informando, mas sem importar a posição onde se encontram. Preciso que ele faça esta busca de 2 em 2 elementos. Alguém poderia me dizer como posso fazer isto. No exemplo abaixo quero que ele troque os caracteres “ef” por “ab”

String var = "efaefa";
var1 = var.replaceAll("ef","ab");
var1 = "abaaba"

O que gostaria que o programa fizesse era trocar somente de 2 em 2 caracteres. A string deveria ter ficado “abaefa” e não “abaaba”. Agradeço se alguém puder me ajudar.

use um for e um substring

e equals

Tenho a seguinte linha de código:

[code]

String continuacao = new String();
char[] ch2 =troca_string.toCharArray();
for(int i = 0; i < ch2.length; i+=2){
if((ch2[i]==‘e’)&&(ch2[i+1]==‘1’)) {
ch2[i]=‘8’;
ch2[i+1]=‘e’;
}
if((ch2[i]==‘e’)&&(ch2[i+1]==‘0’)) {
ch2[i]=‘8’;
ch2[i+1]=‘d’;
}
continuacao = String.valueOf(ch2[i]) + String.valueOf(ch2[i+1]);
System.out.println(“continuacao:” + continuacao);
} [/code]

Que no caso de eu digitar “e1e0” me retorna o seguinte resultado:

continuacao:8e continuacao:8d

Mas caso eu queira atribuir a outra variável o valor desta variável continuação tipo:

[code]

troca_string = continuacao;
System.out.println(“troca_string:” + troca_string); [/code]

Me é retornado somente o “8d”, como faço para que possa atribuir todo o conteúdo da variável continuação na variável troca_string fora do laço for. Agradeço se alguém puder me dar uma força.

seria isso ?

   public static void main(String[] args) {
      String continuacao = new String();       
      char[] ch2 = args[0].toCharArray(); 
      for(int i = 0; i < ch2.length; i+=2){        
          if((ch2[i]=='e')&&(ch2[i+1]=='1')) { 
              ch2[i]='8'; 
              ch2[i+1]='e';               
          } 
          if((ch2[i]=='e')&&(ch2[i+1]=='0')) { 
              ch2[i]='8'; 
              ch2[i+1]='d';               
          } 
          continuacao += String.valueOf(ch2[i]) + String.valueOf(ch2[i+1]); 
      }
      System.out.println("continuacao:" + continuacao);            
   }

ou iss ?

 troca_string += continuacao; 
 System.out.println("troca_string:" + troca_string); 

Valeu pela dica agnm e desculpe a ignorância, mas quando o cara é meio inesperiente é assim mesmo, falou. :oops: