2017-03-31 1 views
0

J'ai besoin que mon code affiche la chaîne dans l'ordre inverse. Par exemple, la sortie devrait avoir "code" return comme "edoc". C'est ce que j'ai fait jusqu'à présent.Comment faire une chaîne inverse en utilisant une boucle for?

public String reverseString(String str) { 
String res = ""; 

for (int i = 0; i <= str.length()-1; i++) { 
    res = res + str.charAt(i); 
} 
    return res; 
} 
+0

Est-ce que cela DOIT utiliser une boucle 'for'? Est-ce java, C# ou quoi? –

+0

Désolé. C'est en Java, et oui il faut utiliser une boucle 'for'. – DissolvedMan

+0

OK juste comme un commentaire, non pour 'new StringBuilder (mystring) .reverse(). ToString()' –

Répondre

0

Le principal problème avec votre façon de le faire est votre prend le caractère de str et n'th annexant pour le rendre le caractère de res n'th.

Vous pouvez le fixer comme ceci:

public String reverseString(String str) { 
    String res = ""; 

    for (int i = str.length() - 1; i >= 0; i--) { 
     res = res + str.charAt(i); 
    } 
    return res; 
} 
0

Vous avez votre concaténation en arrière. Essayez:

public String reverseString(String str) { 
    String res = ""; 
    for (int i = 0; i < str.length(); i++) { 
     res = str.charAt(i) + res;   // Add each char to the *front* 
    } 
    return res; 
} 

Notez également la condition de terminaison de boucle plus simple, canonique.