Cómo invertir las palabras en una cadena usando Java

Hay varios métodos para revertir una cadena en Java

Pseudo código para la cadena inversa:

1. Convierta la cadena de entrada en una matriz de caracteres utilizando el método incorporado de la Clase de cadena toCharArray ().
2. En este método, escanearemos la matriz de caracteres desde ambos lados, es decir, desde el índice de inicio (izquierda) así como desde el último índice (derecha) simultáneamente.
3. Establezca el índice izquierdo igual a 0 y el índice derecho igual a la longitud de la cadena -1.
4. Intercambie los caracteres de la exploración de índice de inicio con la última exploración de índice una por una. Después de eso, aumente el índice de la izquierda en 1 (izquierda ++) y disminuya la de la derecha en 1, es decir (derecha) para pasar a los siguientes caracteres en el matriz de caracteres.
5. Continuar hasta que la izquierda sea menor o igual a la derecha.

import java.io. *;
import java.util. *;

reversa de clase pública {
public static void main (String [] args) {
Entrada de cadena = “Estar en el presente”;
char [] temparray = input.toCharArray ();
int izquierda, derecha = 0;
derecha = temparray.length-1;
para (izquierda = 0; izquierda <derecha; izquierda ++, derecha–)
{
// Swap valores de izquierda y derecha
temp temp = temparray [izquierda];
temparray [izquierda] = temparray [derecha];
temparray [derecha] = temp;
}
para (char c: temparray)
System.out.print (c);
System.out.println ();
}}

Fuente: 5 formas de invertir una cadena en Java con el ejemplo

Edición 1: Con el fin de invertir la palabra en una cadena

Primero dividimos la cadena en la matriz de palabras, y luego iteramos a través de la matriz y agregamos cada elemento a una cadena nueva. Nota: StringBuilder se debe utilizar para evitar crear demasiadas cadenas. Si la cadena es muy larga, el uso de la cadena no es escalable ya que la cadena es inmutable y se crearán y recolectarán demasiados objetos.

solución de clase {
cadena pública reversewords (cadena s) {
if (s == null || s.length () == 0) {
regreso “”;
}

// dividir en palabras por espacio
Cadena [] arr = s.split (“”);
StringBuilder sb = new StringBuilder ();
para (int i = arr.length – 1; i> = 0; –i) {
if (! arr [i] .equals (“”)) {
sb.append (arr [i]). append (“”);
}
}
devuelve sb.length () == 0? “”: sb.substring (0, sb.length () – 1);
}
}

Entrada: “el cielo es azul”, devuelve “azul es el cielo”.

Hay varios enfoques para revertir palabras en una cadena en java.

Puede encontrar muchas soluciones en respuestas dadas anteriormente para esta pregunta si su intención es revertir la cadena total, es decir;

Entrada: me encanta la programación

salida: gnimmargorp evol i

Si desea invertir las palabras en una cadena pero no los caracteres en las palabras, el siguiente código es uno de los enfoques

clase pública ReverseWordsInString {
public static void main (String [] args) {
String str = “me encanta la programación”;
Cadena [] palabras = reverse (str) .split (“”);
String reverseString = “”;
para (int i = 0; i reverseString + = reverse (palabras [i]) + “”;
}
System.out.println (reverseString.trim ());
}

Inversión de cadena estática pública (palabra de cadena)
String reverseWord = “”;
para (int i = word.length () – 1; i> = 0; i–) {
reverseWord + = word.charAt (i);
}
devuelve reverseWord;
}
}

Entrada: me encanta la programación
Salida: programación amor i

Si desea invertir los caracteres de las palabras pero no las de una cadena, el siguiente código funciona

clase pública ReverseWordsInString {
public static void main (String [] args) {
String str = “me encanta la programación”;
Cadena [] palabras = str.split (“”);
String reverseString = “”;
para (int i = 0; i reverseString + = reverse (palabras [i]) + “”;
}
System.out.println (reverseString.trim ());
}

Inversión de cadena estática pública (palabra de cadena) {
String reverseWord = “”;
para (int i = word.length () – 1; i> = 0; i–) {
reverseWord + = word.charAt (i);
}
devuelve reverseWord;
}
}

Entrada: me encanta la programación
Salida: evoluciono gnimmargorp

Feliz codificación 🙂

clase pública ReverseString {
public static void main (String [] args) {
Valor de cadena = “Anand”;
para (int i = value.length () – 1; i> = 0; i -) {
System.out.println (“La cadena inversa es \ t” + value.charAt (i));

}
}
}

Gracias por la A2A

Espero que el siguiente código te ayude

paquete com.ashok.sample;

Prueba de clase pública {
public static void main (String [] args) {
StringBuffer buffer = new StringBuffer ();
buffer.append (“Bienvenido”);
System.out.println (búfer);
buffer.reverse ();
System.out.println (búfer);
}
}
Salida
Bienvenido
emocione

Gracias

Way to Easy Learn

Bueno el mío es un poco más fácil que cualquiera de los anteriores.

Primero encuentra la longitud de la cadena .let be l

Int l = s.length ();

Para (int I = l-1; I> = 0; I ++)

{

Char c = s.charAt (I);

S1 = S1 + c;

}

Imprimir s1

Bueno, he usado un poco de Collections Framework.

El código :

import java.util.Collections;
import java.util.List;
import java.util.Arrays;

clase StringReverse {
Vacío estático público principal (cadena args []) {
Cadena s1 = “Esta es una oración”;
Cadena temp = “”;
Cadena [] palabras = s1.split (“\\ s”);

Lista list = Arrays.asList (palabras);
Colecciones.reverso (lista);
palabras = (String []) list.toArray ();

para (cadena w: palabras) {
temp = temp + “” + w;
}
System.out.println (temp);
}
}

Buenos ejemplos para revertir las palabras usando Java está aquí:

5 maneras de invertir una cadena en Java con el ejemplo

Usa la función reverse () de la clase StringBuffer.

like-object_variable.reverse ( string_variable );

p.ej. StringBuffer s1 = new StringBuffer (“hello”);

String s2;

s2 = s1.reverse ();

ahora la salida de s2 es = olleh;

Cadena s = “algo en inglés”;
System.out.println (new StringBuilder (s) .reverse ());

Aquí está el código:

Supongamos que su cadena es “ABCD”

String str = “ABCD”;

int i = str.length () – 1;

Mientras (i> = 0)

{

system.out.println (str [i]);

yo-;

}

StringBuffer s = new StringBuffer (“Palabra”); // Puedes pasar tu propia entrada

s.reverse ();

System.out.println (s);

Puedes usar el método reverse () de la clase StringBuffer.