[QUOTE]Originariamente inviato da zenone
salve a tutti... scusate ma ho iniziato da poco a studiare il java e mi si è presentato un problemino che non riesco a capire da cosa sia causato...
codice:
BufferedReader tastiera = new BufferedReader(new InputStreamReader(System.in));
StringBuffer frase = new StringBuffer (tastiera.readLine());
StringBuffer rovescia = new StringBuffer();
rovescia = frase;
rovescia.reverse();
System.out.println( frase );
System.out.println( rovescia );
Nella parte in grassetto la variabile rovescia va a puntare all'oggetto puntato dalla variabile frase (Condivisione...).
Pertanto una modifica all'una o all'altra variabile andra' ad avere effetto (Indesiderato ) sull'altra.
Potresti fare:
codice:
BufferedReader tastiera = new BufferedReader(new InputStreamReader(System.in));
StringBuffer frase = new StringBuffer (tastiera.readLine());
StringBuffer rovescia = new StringBuffer(frase);
rovescia.reverse();
System.out.println( frase );
System.out.println( rovescia );
In questo modo rovescia punta ad un NUOVO oggetto il cui stato e' lo stesso dell'oggetto puntato dalla variabile frase.
Essendo oggetti differenti una modifica all'uno o all'altro non procura... effetti collaterali...