Le méthode charAt(int) ne sert pas à changer un caractère d'une String, mais à connaître le caractère à une position donnée. Les méthodes en Java ne servent pas à la fois à connaître une propriété (comme quand tu fais (if (s1.charAt(i) == 1)) et la modifier (comme quand tu fais resultat.charAt(i) = '1' 
ici, encore une fois, la méthode charat te permet de lire une "propriété" et non de la modifier.
Ceci étant dit, pour ajouter un caractère à une String, tu peux simplement faire
ou, si ça te paraît plus lisible :
taString = taString+leCaractere;
Maintenant, en regardant ton code, quelques remarques :
Ce code ne fait strictement rien !! Tu as ici une boucle infinie ! i vaudra toujours 0.
Sans rentrer dans les détail, un simple i++ suffit.
ici, attention. Tu testes la valeur d'un char avec un entier. Tu veux probablement plutôt faire qqch comme s1.charAt(i) == '1'.
Le caractère '1', vaut 49 en entier, comme peut te le montrer un ptit :
1 2
| char c = '1';
System.out.println((int)c); |
donc ton s1.charAt(i) == 1 sera toujours faux si ta string de départ ne contient que des '0' et des '1'
Voilà. Je ne sais pas si j'ai été tout à fait clair et espère avoir pu t'aider.
Partager