Como reverter uma string em Java
-
Reverter uma string utilizando o método
reverse()
em Java - Reverter uma string utilizando código personalizado em Java
-
Reverta uma string utilizando o método
append()
em Java - Inverter uma string utilizando a recursividade em Java
-
Reverter uma string usando
Stack
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