Sobes.tech
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:

  1. Uso da classe StringBuilder ou StringBuffer:
String original = "exemplo";
String invertido = new StringBuilder(original).reverse().toString();
System.out.println(invertido); // olpmeje
  1. 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);
  1. 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.