[ Foro de Java ]

Ejercicio 8.5.1!!

23-Nov-2013 03:11
Ricardo Rojas
2 Respuestas


Primero Antes que nada dar las gracias a Nacho por estos excelentes tutoriales!!!!

Segundo No logro realizar el ejercicio 8.5.1 en el que se debe pedir el nombre al usuario y mostrarlo al revés en ventana.

Lo que intente fue crear un bucle do while asignar el lenght de la cadena a una variable y con substring ir imprimiendo el ultimo caracter de la cadena e ir decrementando el substring hasta llegar a 0 pero el resultado es el esperado pero me lo da pero en ventanas diferentes.

Aqui pongo mi avance

package ejercicio841;
import javax.swing.JOptionPane;
/**
*@author rik
*/
public class Ejercicio841 {

   
   public static void main(String[] args) {
   String a;
   a= JOptionPane.showInputDialog(
           null,"Introdusca su nombre",
           "Nombre",
           JOptionPane.QUESTION_MESSAGE);
   
   int b=a.length();
   int d=b;
   int c=d-1;
   
   
     do{
     
     
     JOptionPane.showMessageDialog(
       null,"Tiene de distancia de caracteres: " + a.substring(c,d),
       "Sumador",
       JOptionPane.INFORMATION_MESSAGE);    
     d=d-1;
     c=c-1;
     }
     while (d>0);

   }
}


Espero alguien me pueda ayudar Saludos!!!!!!!


23-Nov-2013 03:45
Ricardo Rojas

Ya lo logre, habia intentado hacer un reverse a mi string pero me daba error por eso intente con el codigo que puse arriba, la solucion estaba en convertir mi String en un StringBuffer y a ese realizarle un reverse y ta chan !!!

Pregunte y me conteste yo mismo jeje
Por si alguien tiene la misma duda aqui el codigo


public class Ejercicio841 {

   
   public static void main(String[] args) {
   String a;
   
   a= JOptionPane.showInputDialog(
           null,"Introdusca su nombre",
           "Nombre",
           JOptionPane.QUESTION_MESSAGE);
   StringBuffer sb = new StringBuffer(a);
     
    sb.reverse();
    JOptionPane.showMessageDialog(
       null,"Tu nombre al reves: " + sb,
       "Nombre",
       JOptionPane.INFORMATION_MESSAGE);    
   
   }
}


Saludos a todos


23-Nov-2013 14:43
Nacho Cabanes (+31)

Efectivamente, un "reverse" te podría servir. No existe en "string", pero sí en StringBuilder:

 
cadena = new StringBuilder(cadena).reverse().toString();
 


Aun así, lo razonable en un ejercicio de este tipo... es que en vez de utilizar cosas prefabricadas, pruebes tú a resolver al problema usando "substring" (o "charAt") y un "for".






(No se puede continuar esta discusión porque tiene más de dos meses de antigüedad. Si tienes dudas parecidas, abre un nuevo hilo.)