He "Hello World"
mantenido en una variable de cadena llamada hi
.
Necesito imprimirlo, pero al revés.
¿Cómo puedo hacer esto? Entiendo que hay algún tipo de función ya incorporada en Java que hace eso.
Relacionado: Invierta cada palabra individual de la cadena "Hello World" con Java
Respuestas:
Puedes usar esto:
O, para versiones anteriores a JDK 1.5, use en
java.util.StringBuffer
lugar deStringBuilder
- tienen la misma API. Gracias comentaristas por señalar queStringBuilder
se prefiere hoy en día cuando no hay preocupación de concurrencia.fuente
StringBuilder
concurrencia local desechable no es una preocupación (y creo que eso es lo que quiso decir).String hi = "Hello World";
. Así que creo que en su respuesta no debería no ser las comillas dobles alrededorhi
. Quiero decir que debería ser asínew StringBuilder(hi).reverse().toString()
Para los problemas de Jueces en línea que no permiten
StringBuilder
oStringBuffer
, puede hacerlo en su lugar usandochar[]
lo siguiente:fuente
http://www.java2s.com/Code/Java/Language-Basics/ReverseStringTest.htm
fuente
fuente
Estoy haciendo esto usando las siguientes dos formas:
Cadena inversa por PERSONAJES:
Cadena inversa por PALABRAS:
fuente
Echa un vistazo a la API de Java 6 en StringBuffer
fuente
reverse()
ytoString()
), por lo que la diferencia probablemente ni siquiera será mensurable.Aquí hay un ejemplo usando recursividad:
fuente
Aquí hay una solución de bajo nivel:
fuente
Lo intenté, solo por diversión, usando una pila. Aquí mi código:
fuente
Dado que el método siguiente (usando XOR ) para invertir una cadena no está en la lista, adjunto este método para invertir una cadena.
El algoritmo se basa en:
Fragmento de código:
Salida:
keetarp
fuente
Como otros han señalado, la forma preferida es usar:
Pero si desea implementar esto usted mismo, me temo que el resto de las respuestas tienen fallas.
La razón es que
String
representa una lista de puntos Unicode , codificados en unachar[]
matriz de acuerdo con la codificación de longitud variable: UTF-16 .Esto significa que algunos puntos de código usan un solo elemento de la matriz (una unidad de código) pero otros usan dos de ellos, por lo que puede haber pares de caracteres que deben tratarse como una sola unidad (sustitutos "altos" y "bajos" consecutivos) .
fuente
Es muy simple en código mínimo de líneas.
fuente
Esto hizo el truco para mí
fuente
1. Usando la matriz de caracteres:
2. Usando StringBuilder:
O
fuente
Usé este método para convertir los nombres al revés y en minúsculas.
fuente
fuente
Una forma natural de revertir a
String
es usar aStringTokenizer
y a stack.Stack
es una clase que implementa una pila de objetos de último en entrar, primero en salir (LIFO) fácil de usar.Ponlo en la pila al frente
Imprime la pila al revés
fuente
fuente
Toda la solución anterior es demasiado buena, pero aquí estoy haciendo una cadena inversa usando programación recursiva.
Esto es útil para quién está buscando una forma recursiva de hacer una cadena inversa.
fuente
Procedimiento:
Podemos usar split () para dividir la cadena. Luego use el bucle inverso y agregue los caracteres.
Fragmento de código:
fuente
public String reverseWords (String s) {
fuente
También puedes probar esto:
fuente
fuente
recursividad
fuente
Solo por diversión..:)
Atraviese i de 0 a len / 2 y luego
Complejidad de tiempo: O (n)
Complejidad espacial: O (n)
fuente
fuente
fuente
fuente
fuente
Si quieres usar un simple for loop!
fuente