Originariamente inviato da raeco
Quale potrebbe essere il problema?
Un problema sta in b=b.concat(a.substring(i)): dopo l'inizializzazione la stringa a non viene più toccata, col risultato che continui a concatenare pezzi che non ti servono!
Ad esempio, se l'utente inserisce "ciao", iterazione dopo iterazione avrai questo comportamento:
i = 4
a = ciao
b =
i = 3
a = ciao
b =
i = 2
a = ciao
b = o
i = 1
a = ciao
b = oao
Inoltre alla prima iterazione (i = lunghezza della stringa) la chiamata a substring non ti restituisce nulla, dovresti partire da length - 1 e proseguire fino a i = 0, altrimenti salti un'iterazione!
Rimanenendo sul tuo esempio:
codice:
import javax.swing.JOptionPane;
public class s1 {
public static void main(String[] args) {
String a = JOptionPane.showInputDialog("Inserisci una stringa");
String b = "";
int i = a.length() - 1;
while(i >= 0) {
b += a.charAt(i--);
}
System.out.println("Stringa al rovescio: " + b);
}
}