Ecrire un fonction inverse

- 9 oct. 2016 à 14:29 - Dernière réponse :
Messages postés
5292
Date d'inscription
dimanche 4 mai 2003
Statut
Modérateur
Dernière intervention
12 novembre 2018
- 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 

Votre réponse

2 réponses

Messages postés
14299
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
16 novembre 2018
- Modifié par jordane45 le 9/10/2016 à 15:36
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
5292
Date d'inscription
dimanche 4 mai 2003
Statut
Modérateur
Dernière intervention
12 novembre 2018
- 10 oct. 2016 à 08:44
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

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.