Ecrire un fonction inverse

baby - 9 oct. 2016 à 14:29 - Dernière réponse : Twinuts 5261 Messages postés dimanche 4 mai 2003Date d'inscriptionModérateurStatut 20 avril 2018 Dernière intervention
- 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
Afficher la suite 

2 réponses

Répondre au sujet
NHenry 14136 Messages postés vendredi 14 mars 2003Date d'inscriptionModérateurStatut 26 avril 2018 Dernière intervention - Modifié par jordane45 le 9/10/2016 à 15:36
0
Utile
"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
Twinuts 5261 Messages postés dimanche 4 mai 2003Date d'inscriptionModérateurStatut 20 avril 2018 Dernière intervention - 10 oct. 2016 à 08:44
0
Utile
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

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.