Ecrire un fonction inverse

baby - Modifié par jordane45 le 9/10/2016 à 15:35
Twinuts
Messages postés
5372
Date d'inscription
dimanche 4 mai 2003
Statut
Modérateur
Dernière intervention
24 mai 2022
- 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
5372
Date d'inscription
dimanche 4 mai 2003
Statut
Modérateur
Dernière intervention
24 mai 2022
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