O método Java - replace () usando valores de matrizes está alterando os valores da matriz?

Estou fazendo algo como

public static String[] list = {"a","b","c","d",}  //It gives me a NullPointeException if I didn't use static
public String encrypt(String a){
   a = a.replace(list[0],list[2]);
   a = a.replace(list[4],list[3]);
   return a;
}

e eu tenho outro método que apenas o inverte

public String decrypt(String a){
   a = a.replace(list[2],list[0]);
   a = a.replace(list[3],list[4]);
   return a;
}

Claro que isso é simplificado, o código real que estou usando usa o alfabeto inteiro e alguns números. Então, aqui está o meu problema: se eu inserir algo como123 para dentroencrypt() e gerangV então eu insirongV em decrypt () me dá como1q3. Apenas algumas das letras foram trocadas corretamente e outras não. Existe algo com oreplace() método usando valores de matriz que estou faltando? Eu sou obviamente novo em Java.

Eu também liProblemas de Java replace () masreplaceAll() não deu certo.

questionAnswers(1)

yourAnswerToTheQuestion