Invertire una stringa in Java

Mohammad Irfan 12 ottobre 2023
  1. Invertire una stringa utilizzando il metodo reverse() in Java
  2. Invertire una stringa utilizzando il codice personalizzato in Java
  3. Invertire una stringa utilizzando il metodo append() in Java
  4. Invertire una stringa utilizzando la ricorsione in Java
  5. Invertire una stringa utilizzando Stack in Java
Invertire una stringa 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

Articolo correlato - Java String