Foros del Web » Programación para mayores de 30 ;) » Java »

Duda con tipo de dato "char"

Estas en el tema de Duda con tipo de dato "char" en el foro de Java en Foros del Web. Tengo dudas acerca de 2 líneas de código de esta aplicación que recoge caracteres char mediante System.in.read() y las devuelve todas unidas en un string, ...
  #1 (permalink)  
Antiguo 05/11/2012, 01:07
 
Fecha de Ingreso: septiembre-2005
Mensajes: 74
Antigüedad: 13 años, 1 mes
Puntos: 0
Duda con tipo de dato "char"

Tengo dudas acerca de 2 líneas de código de esta aplicación que recoge caracteres char mediante System.in.read() y las devuelve todas unidas en un string, las dudas están en las líneas comentadas:

Código Javascript:
Ver original
  1. import java.io.*;
  2.  
  3. class prog1603
  4. {
  5.     public static void main(String[] args)
  6.     {
  7.         String nombre;
  8.         System.out.println("Ingrese su nombre");
  9.         nombre=LeerLinea();
  10.         System.out.println("Hola: "+ nombre);
  11.        
  12.     }
  13.     static String LeerLinea()
  14.     {
  15.         String s= new String();
  16.         char car;
  17.  
  18.         try
  19.         {
  20.             car=(char) System.in.read();/*1.Pensaba que char sólo podía almacenar 1 caracter, pero aquí almacena una cadena*/
  21.             while (car!='\n')
  22.             {
  23.                 s+=car;
  24.                 car=(char) System.in.read();/*2.Si en la anterior línea comentada me pedía ingresar un texto, por qué no lo hace aquí?*/
  25.             }
  26.         }
  27.         catch(java.io.IOException e)
  28.         {
  29.             s=null;
  30.         }
  31.         return s;
  32.     }
  33. }

Muchas gracias.
  #2 (permalink)  
Antiguo 05/11/2012, 01:21
Avatar de Heimish2000  
Fecha de Ingreso: enero-2011
Ubicación: Madrid
Mensajes: 844
Antigüedad: 7 años, 8 meses
Puntos: 89
Respuesta: Duda con tipo de dato "char"

1) Coge el primer caracter que escribes, no almacena una cadena

2) Porque si quitas la primera linea comentada, verás que el primer caracter de s es el valor que tome por defecto car. Se puede hacer con una sola petición con un do-while o inicializando car y poniendo las instrucciones al revés en el while

Etiquetas: dato, string, tipo
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 06:21.