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!Originariamente inviato da raeco
Quale potrebbe essere il problema?
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); } }

Rispondi quotando