Ecrire un fonction inverse

baby - Modifié par jordane45 le 9/10/2016 à 15:35
Twinuts Messages postés 5375 Date d'inscription dimanche 4 mai 2003 Statut Modérateur Dernière intervention 14 juin 2023 - 10 oct. 2016 à 08:44
Bonjour, je vous ecrire une fonction reverse qui inverse une chaine de caractere j'ai ecris ce programme mais sa marche pas
public class Palindromes {

    /* Écrivez vos fonctions ici */
    public static String  reverse (String s ){
 String result = "" ;
 for ( int i = 1 ; i <= s.length();i++){
     for ( int j = s.length() ; j >= 1 ; i++ ){
  s.charAt[i] = s.charAt (j);
     }
 }
 return result;
    }

merci .

EDIT : Ajout des balises de code (la coloration syntaxique).
Explications disponibles ici : ICI

Merci d'y penser dans tes prochains messages.


EDIT : Correction de la langue dans les balises de code

2 réponses

Twinuts Messages postés 5375 Date d'inscription dimanche 4 mai 2003 Statut Modérateur Dernière intervention 14 juin 2023 111
10 oct. 2016 à 08:44
Salut,

Pour ce qui du code que tu as donné, quelques points:
De maniérè générale si tu commences une itération de la fin vers le début il ne faut en aucun cas incrémenter ton compteur mais le décrémenter.
Il est également problématique d'incrémenter le même compteur dans deux boucles différentes (cas de i).
La méthode charAt est une méthode pas un tableau, du coup s.charAt[i] = xxx est strictement impossible, si tu veux passer d'un string vers un tableau de char il faut procéder ainsi:
char array[] = str.toCharArray();


Pour ce qui est de faire un reverse:
public static String reverse(String str) {
  StringBuilder sb = new StringBuilder();
  for(int i = str.length() - 1; i >= 0; i--)
    sb.append(str.charAt(i));
  return sb.toString();
}


Après tu peux également passer par une fonction existante.
String str = "hello";
String reverse = new StringBuilder(str).reverse().toString();

1