Como reverter uma string em Java

Mohammad Irfan 12 outubro 2023
  1. Reverter uma string utilizando o método reverse() em Java
  2. Reverter uma string utilizando código personalizado em Java
  3. Reverta uma string utilizando o método append() em Java
  4. Inverter uma string utilizando a recursividade em Java
  5. Reverter uma string usando Stack em Java
Como reverter uma string em Java

Este tutorial introduz como reverter uma string em Java e lista alguns exemplos de códigos para entendê-la.

Há várias maneiras de reverter uma string, como reverse(), sorted(), e parallelSort() métodos, etc. Vamos ver os exemplos.

Reverter uma string utilizando o método reverse() em Java

Neste exemplo, utilizamos o método reverse() da classe StringBuilder para obter a string em ordem inversa, e utilizamos o método toString() para obter o objeto string do objeto StringBuilder. Veja o exemplo abaixo.

public class SimpleTesting {
  public static void main(String[] args) {
    String str = "DelfStack";
    System.out.println(str);
    StringBuilder strb = new StringBuilder(str);
    str = strb.reverse().toString();
    System.out.println(str);
  }
}

Resultado:

DelfStack
kcatSfleD

Reverter uma string utilizando código personalizado em Java

Se você não quiser usar métodos embutidos, então use um código personalizado que trocará os caracteres da string usando um laço e os coletará em uma array de caracteres que será posteriormente convertida em uma string. Veja o exemplo abaixo.

public class SimpleTesting {
  public static void main(String[] args) {
    String str = "DelfStack";
    System.out.println(str);
    char[] ch = str.toCharArray();
    int begin = 0;
    int end = ch.length - 1;
    char temp;
    while (end > begin) {
      temp = ch[begin];
      ch[begin] = ch[end];
      ch[end] = temp;
      end--;
      begin++;
    }
    str = new String(ch);
    System.out.println(str);
  }
}

Resultado:

DelfStack
kcatSfleD

Reverta uma string utilizando o método append() em Java

Esta é outra abordagem para reverter uma string em Java. Aqui, utilizamos métodos charAt() e append() dentro do laço para buscar e armazenar caracteres em objeto StringBuilder. Veja o exemplo abaixo.

public class SimpleTesting {
  public static void main(String[] args) {
    String str = "DelfStack";
    System.out.println(str);
    StringBuilder dest = new StringBuilder();
    for (int i = (str.length() - 1); i >= 0; i--) {
      dest.append(str.charAt(i));
    }
    System.out.println(dest);
  }
}

Resultado:

DelfStac
kcatSfleD

Inverter uma string utilizando a recursividade em Java

Recurssão é uma técnica na qual uma função se chama a si mesma repetidamente até a condição de base. Podemos usar a recursividade para reverter a seqüência, como no exemplo abaixo.

public class SimpleTesting {
  public static void main(String[] args) {
    String str = "DelfStack";
    System.out.println(str);
    String reverseStr = reverseIt(str, str.length() - 1);
    System.out.println(reverseStr);
  }
  static String reverseIt(String str, int index) {
    if (index == 0) {
      return str.charAt(0) + "";
    }
    char letter = str.charAt(index);
    return letter + reverseIt(str, index - 1);
  }
}

Resultado:

DelfStack
kcatSfleD

Reverter uma string usando Stack em Java

Podemos utilizar a classe Stack para inverter a string. Utilizamos o método push() de Stack para recolher os caracteres na pilha e depois utilizamos o método pop() para buscar os caracteres armazenados em ordem inversa. Veja o exemplo abaixo.

import java.util.Stack;

public class SimpleTesting {
  public static void main(String[] args) {
    String str = "DelfStack";
    System.out.println(str);
    Stack<Character> stack = new Stack<>();
    for (int i = 0; i < str.length(); i++) {
      stack.push(str.charAt(i));
    }
    StringBuilder strb = new StringBuilder();
    while (!stack.empty()) {
      strb.append(stack.pop());
    }
    System.out.println(strb);
  }
}

Resultado:

DelfStack
kcatSfleD

Artigo relacionado - Java String