[ Foro de Java ]

ejercicio 7.3.1.2

08-Mar-2016 08:53
kotito otiok
2 Respuestas

Hola!!

Haciendo los problemas de la leccion de String, me he topado con un ejercicio que no se resolver.
Me dice que escriba mi nombre pero con espacios entre las letras utilzando un charAt y un for
Mi código ha sido este

       Scanner teclado = new Scanner (System.in);
       String resultado = "\0";
       
      System.out.println("Dime tu nombre ");
       String name = teclado.nextLine();
       for(int j=0; j<=name.length(); j++)
       {
           
           resultado = resultado + name.charAt(j) + " " ;
       }
   System.out.print(resultado);


Ando pensandolo durante un día y no soy capaz de reunir en un string mi idea que es ir acoplando en el string resultado letra+espacio por cada bucle que se da (como si resultado fuese un array)


09-Mar-2016 04:07
DG. Corporation. (+4)

Buenas  kotito otiok.

Tu algoritmo solo tiene un error, pero la lógica es correcta.

Tiene que ser:
j < name.length() no   j <= name.length

¿Por qué?

Porque las posiciones de los caracteres de un String se inician desde el 0.

Por ejemplo:

String Name =  "Hola"

Name[0] = 'H'
Name[1] = 'o'
Name[2] = 'l'
Name[3] = 'a'

Cuando dices que j < name.length()  entonces se busca un carácter que no existe. En este caso  Name[4].

Este seria el código donde funciona correctamente. Solo puse en el for
j < name.length()


      Scanner teclado = new Scanner (System.in);
      String resultado = "\0";
       
     System.out.println("Dime tu nombre ");
     String name = teclado.nextLine();

      for(int j=0; j < name.length();  j++)
      {
           
          resultado = resultado + name.charAt(j) + " " ;
      }
      System.out.print(resultado);

                                                                                                                                            Buena suerte.


09-Mar-2016 17:27
kotito otiok

Gracias!!!! :D
Es un fallo dificil de ver.  Por lo menos para un principiante






(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.)