Junior — Middle
Quais métodos existem para inverter a ordem dos caracteres numa string?
sobes.tech IA
Resposta da IA
No Java, existem várias formas de inverter a ordem dos caracteres numa string:
- Uso da classe StringBuilder ou StringBuffer:
String original = "exemplo";
String invertido = new StringBuilder(original).reverse().toString();
System.out.println(invertido); // olpmeje
- Converter a string para um array de caracteres e manipular manualmente:
char[] chars = original.toCharArray();
for (int i = 0, j = chars.length - 1; i < j; i++, j--) {
char temp = chars[i];
chars[i] = chars[j];
chars[j] = temp;
}
String invertidoManual = new String(chars);
- Uso de streams para uma abordagem mais funcional (a partir do Java 8):
String invertidoStream = original.chars()
.mapToObj(c -> (char)c)
.collect(Collectors.collectingAndThen(Collectors.toList(), list -> {
Collections.reverse(list);
return list.stream();
}))
.map(String::valueOf)
.collect(Collectors.joining());
Na prática, geralmente se usa StringBuilder.reverse() como a forma mais simples e eficiente.