J'ai "Hello World"
conservé une variable String nommée hi
.
J'ai besoin de l'imprimer, mais inversé.
Comment puis-je faire ceci? Je comprends qu'il existe une sorte de fonction déjà intégrée à Java qui fait cela.
Connexes: inverser chaque mot individuel de la chaîne «Hello World» avec Java
Réponses:
Vous pouvez utiliser ceci:
Ou, pour les versions antérieures à JDK 1.5, utilisez
java.util.StringBuffer
au lieu deStringBuilder
- ils ont la même API. Merci aux commentateurs d'avoir souligné queStringBuilder
c'est préférable de nos jours lorsqu'il n'y a pas de problème de concurrence.la source
StringBuilder
concurrence locale jetable n'est pas un problème (et je pense que c'est ce qu'il voulait dire).String hi = "Hello World";
. Je pense donc que dans votre réponse, il ne devrait pas y avoir de guillemetshi
. Je veux dire que cela devrait être comme çanew StringBuilder(hi).reverse().toString()
Pour les problèmes de juges en ligne qui ne permettent pas
StringBuilder
ouStringBuffer
, vous pouvez le faire en place en utilisantchar[]
comme suit:la source
http://www.java2s.com/Code/Java/Language-Basics/ReverseStringTest.htm
la source
la source
Je fais cela en utilisant les deux manières suivantes:
Chaîne inversée par PERSONNAGES:
Chaîne inversée par MOTS:
la source
Jetez un œil à l'API Java 6 sous StringBuffer
la source
reverse()
ettoString()
), donc la différence ne sera probablement même pas mesurable.Voici un exemple utilisant la récursivité:
la source
Voici une solution de bas niveau:
la source
J'ai essayé, juste pour le plaisir, en utilisant une pile. Voici mon code:
la source
Étant donné que la méthode ci-dessous (en utilisant XOR ) pour inverser une chaîne n'est pas répertoriée, j'attache cette méthode pour inverser une chaîne.
L' algorithme est basé sur:
Extrait de code:
Production:
Keetarp
la source
Comme d'autres l'ont souligné, la méthode préférée consiste à utiliser:
Mais si vous voulez l'implémenter par vous-même, je crains que le reste des réponses aient des défauts.
La raison en est que
String
représente une liste de points Unicode , codés dans unchar[]
tableau selon le codage de longueur variable: UTF-16 .Cela signifie que certains points de code utilisent un seul élément du tableau (une unité de code) mais d'autres en utilisent deux, il peut donc y avoir des paires de caractères qui doivent être traitées comme une seule unité (substituts consécutifs "haut" et "bas") .
la source
C'est très simple en code minimum de lignes
la source
Cela a fait l'affaire pour moi
la source
1. Utilisation du tableau de caractères:
2. Utilisation de StringBuilder:
OU
la source
J'ai utilisé cette méthode pour transformer les noms en arrière et en minuscules.
la source
la source
Une façon naturelle d'inverser a
String
consiste à utiliser aStringTokenizer
et une pile.Stack
est une classe qui implémente une pile d'objets LIFO (dernier entré, premier sorti) facile à utiliser.Mettez-le dans la pile devant
Imprimer la pile à l'envers
la source
la source
Toute la solution ci-dessus est trop bonne mais ici je fais de la chaîne inverse en utilisant une programmation récursive.
Cela est utile pour ceux qui recherchent une manière récursive de faire une chaîne inversée.
la source
Procédure:
Nous pouvons utiliser split () pour diviser la chaîne. Ensuite, utilisez la boucle inverse et ajoutez les caractères.
Extrait de code:
la source
public String reverseWords (String s) {
la source
Vous pouvez également essayer ceci:
la source
la source
récursivité:
la source
Juste pour le fun..:)
Traverser i de 0 à len / 2 puis
Complexité temporelle: O (n)
Complexité spatiale: O (n)
la source
la source
la source
la source
la source
Si vous voulez utiliser une boucle for simple!
la source