Ecrire un fonction inverse

-
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
Afficher la suite 

2 réponses

Messages postés
14521
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
10 août 2019
133
0
Merci
"mais sa marche pas"
en clair et en expliquant ?
s.charAt[i] = s.charAt (j);

Pourquoi un coup des () et un autre des [] ?
for ( int i = 1 ; i <= s.length();i++){
for ( int j = s.length() ; j >= 1 ; i++ ){

Il y a pas un soucis dans ces 2 lignes ?

Merci de penser à la coloration syntaxique.

J'interviens principalement en VB6 et VB.NET, avec un peu de C#, mais la modération m'amène souvent sur d'autre langages.
En VB.NET pensez à activer "Option Explicit" et "Option Strict"



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

Merci d'y penser dans tes prochains messages.

:-)
Commenter la réponse de NHenry
Messages postés
5337
Date d'inscription
dimanche 4 mai 2003
Statut
Modérateur
Dernière intervention
24 juillet 2019
82
0
Merci
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();

Commenter la réponse de Twinuts