Java - Duda Examen tipo char

 
Vista:

Duda Examen tipo char

Publicado por teellan (3 intervenciones) el 28/05/2018 19:16:33
Hola a todos, tengo una duda sobre Java. En un examen de Java, la pregunta decia. Si un tipo char puede almacenar un int.
Yo dije que NO, que almacenaba un tipo de caracter unicode, y puse para decir porque el siguiente codigo:

char a=2;
char b=2;
char resultado=a+b;
System.out.println("Resultado"+resultado);

Y Java de un error, si almacena un entero el resultado debia estar correcto.

Me dijo que estaba mal que era que SI, pero le pregunte porque estaba mal el ejemplo que le puse y no me lo supo explicar porque.

Cual es la solución?. Porque da un error el trozo de codigo.

Gracias a todos.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Pedro
Val: 305
Ha mantenido su posición en Java (en relación al último mes)
Gráfica de Java

Duda Examen tipo char

Publicado por Pedro (102 intervenciones) el 28/05/2018 20:24:54
Para no liarte mucho un String es una concatenación de Char y cada Char puede ser visualizado como un String o se puede sacar su valor integer ascii

ejemplo aclaratorio:

1
2
3
4
5
6
7
8
9
10
11
12
String rp="rPeter";
String r2d2="1994";
 
Char caracter=rp.charAt(0) // Esto te daría el caracter 'r'
 
int  numerico= (int) caracter; //Casteamos y el valor de numerico ahora es =114 
 
Char caracter2=r2d2..charAt(0);//Esto nos da el caracter '1'
 
int numerico2=  (int)caracter2;//Casteamos y ahora el valor del caracter 1  es =  49
 
/*Ahora ya puedes sumar numerico  + numerico2  por sus valores  integers ascii */

Entonces si haces un casting hacia integer de un char entonces , ya obtienes el valor integer y a partir de este momento ya se puede realizar una operación matemática con él.

Espero haberte sido de ayuda y no haberte metido mucho contenido porque ¡Yo! estuve en tu misma situación al principio y lo que no queremos es mucho mareo e ir al grano.

Saludos y a darle duro........
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Duda Examen tipo char

Publicado por Tom (1831 intervenciones) el 29/05/2018 09:03:20
En mi opinión los dos tenéis razón. Un tipo char almacena un carácter unicode. Correcto. Pero un carácter unicode no deja de ser un número.
El cçodigo que pones, da un error porque necesita un cast explícito:

1
char resultado = (char)(a + b);

Y eso pasaría igual con tipos byte o tipos short.
Además, println, va a interpretar resultado como un carácter, no como un tipo numérico.

Prueba:

1
2
3
4
short a = 65;
short b = 3;
short result = a + b;
System.out.println("Resultado '" + result + "'");

En definitiva, aunque un char pueda contener un número (todo son números en cualquier programa), yo no lo usaría con ese sentido.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Duda Examen tipo char

Publicado por Teellan (3 intervenciones) el 29/05/2018 14:41:10
Lo primero, gracias por responderme a ambos. No me explice bien, en el examen decia, sin usar casting o ningun tipo de conversion, un tipo char primitivo, puede almacenar un int, tipo dato primitivo. La respuesta es si. Yo decia que no, porque es un carecter unicode, y ponia el porque.
1
2
3
4
char a=2;
char b=2;
char resultado=(a+b);
System.out.println("Resultado '" + resultado + "'");
Al probarlo da un error.
No lo entiendo si (a+b) da como resultado un int, porque genera ese error.

En cambios si pones
1
System.out.println("Resultado '" + (a+b) + "'");
No da ningun fallo, muestra: Resultado 4

Pero debe ser lo que dice Tom el, println.

Es que entro en un do{ }while(true); y es que no salgo.

Un saludo y gracias a todos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 68
Ha aumentado 1 puesto en Java (en relación al último mes)
Gráfica de Java

Duda Examen tipo char

Publicado por gianmarco (26 intervenciones) el 31/05/2018 13:20:49
Para componer una cadena es preciso usar la clase String, no se puede hacer como tipo primitivo.
En el
System.out.println("Resultado '" + (a+b) + "'"); aqui si te muestra la respuesta porque esta sumando y mostrando directamente, por la operación que estas realizando dentro del paréntesis.
Te dejo un link que te puede ayudar con conceptos
https://es.wikipedia.org/wiki/Tipo_de_dato
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Duda Examen tipo char

Publicado por Teellan (3 intervenciones) el 31/05/2018 19:11:37
Muchas gracias la voy a echar una hojeda al link que me dejas.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar