Invertire una stringa in Java
-
Invertire una stringa utilizzando il metodo
reverse()
in Java - Invertire una stringa utilizzando il codice personalizzato in Java
-
Invertire una stringa utilizzando il metodo
append()
in Java - Invertire una stringa utilizzando la ricorsione in Java
-
Invertire una stringa utilizzando
Stack
in Java

Questo tutorial introduce come invertire una stringa in Java ed elenca alcuni codici di esempio per comprenderla.
Ci sono diversi modi per invertire una stringa, come i metodi reverse()
, sorted()
e parallelSort()
, ecc. Vediamo gli esempi.
Invertire una stringa utilizzando il metodo reverse()
in Java
In questo esempio, usiamo il metodo reverse()
della classe StringBuilder
per ottenere la stringa in ordine inverso, e usiamo il metodo toString()
per ottenere l’oggetto stringa dall’oggetto StringBuilder
. Vedi l’esempio sotto.
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);
}
}
Produzione:
DelfStack
kcatSfleD
Invertire una stringa utilizzando il codice personalizzato in Java
Se non si desidera utilizzare metodi incorporati, utilizzare un codice personalizzato che scambierà i caratteri della stringa utilizzando un bucle e li raccoglierà in un array di caratteri che verrà ulteriormente convertito in una stringa. Vedi l’esempio sotto.
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);
}
}
Produzione:
DelfStack
kcatSfleD
Invertire una stringa utilizzando il metodo append()
in Java
Questo è un altro approccio per invertire una stringa in Java. Qui, usiamo i metodi charAt()
e append()
all’interno del bucle for per recuperare e memorizzare i caratteri nell’oggetto StringBuilder
. Vedi l’esempio sotto.
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);
}
}
Produzione:
DelfStac
kcatSfleD
Invertire una stringa utilizzando la ricorsione in Java
La ricorsione è una tecnica in cui una funzione chiama se stessa ancora e ancora fino alla condizione di base. Possiamo usare la ricorsione per invertire la stringa, come nell’esempio seguente.
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);
}
}
Produzione:
DelfStack
kcatSfleD
Invertire una stringa utilizzando Stack
in Java
Possiamo usare la classe Stack
per invertire la stringa. Usiamo il metodo push()
di Stack
per raccogliere i caratteri nello stack e poi usiamo il metodo pop()
per recuperare i caratteri memorizzati in ordine inverso. Vedi l’esempio sotto.
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);
}
}
Produzione:
DelfStack
kcatSfleD