1
00:00:00,880 --> 00:00:02,700
Hola y bienvenidos a esta elección.

2
00:00:02,710 --> 00:00:07,930
A continuación vamos a ver la conversión de tipos primitivos en Java están listos.

3
00:00:07,990 --> 00:00:17,000
Vamos llamamos a nuestro código vamos a quitar el código que hemos escrito y dejamos únicamente la definición

4
00:00:17,000 --> 00:00:17,470
de la clase.

5
00:00:17,480 --> 00:00:20,290
Hola mundo y el método Mail.

6
00:00:20,320 --> 00:00:24,590
Vamos a ver ahora el tema de conversión de tipos primitivos.

7
00:00:24,640 --> 00:00:33,140
Vamos a ver primero el caso de convertir un string a un tipo int.

8
00:00:33,160 --> 00:00:39,820
Para esto podemos hacer lo siguiente Vamos a definir nuestra variable edad y esta variable edad queremos

9
00:00:39,820 --> 00:00:41,450
que reciba un valor entero.

10
00:00:41,530 --> 00:00:43,960
Sin embargo el valor es una string.

11
00:00:44,200 --> 00:00:51,550
Entonces podemos utilizar la clase integrar la cual contiene un método para convertir una cadena a un

12
00:00:51,550 --> 00:01:01,480
entero y el método se llama pars int así que lo que recibe es un string proporcionamos el string por

13
00:01:01,480 --> 00:01:08,350
ejemplo en este caso el valor de 20 y lo que va a hacer esta línea es convertir este string lo va a

14
00:01:08,350 --> 00:01:12,810
convertir a entero y entonces el resultado de esta expresión de mandar a llamar.

15
00:01:12,820 --> 00:01:19,030
Esta función es el valor de 20 pero ya en valor entero pero ya es un tipo int.

16
00:01:19,360 --> 00:01:27,430
Vamos a imprimir el valor de esta variable con ese Alvy guardamos cambios y ejecutamos

17
00:01:31,610 --> 00:01:35,550
y podemos observar que nos imprime correctamente el valor de 20.

18
00:01:35,550 --> 00:01:38,870
Ahora cómo podemos saber que realmente es un valor de tipo int.

19
00:01:39,030 --> 00:01:45,960
Podremos utilizar la variable para realizar algún cálculo con otros tipos enteros o simplemente convertir

20
00:01:46,170 --> 00:01:53,430
esta variable a un tipo int y con esto comprobamos que el resultado de ejecutar la llamada al método

21
00:01:53,710 --> 00:01:55,780
int y proporcionarle un string.

22
00:01:55,830 --> 00:02:03,040
El resultado es que regresa un tipo entero así que esa es una forma de convertir cadenas a tipos enteros

23
00:02:04,040 --> 00:02:10,280
pero podemos utilizar la palabra reservada var sin ningún problema ahora también podemos utilizar otros

24
00:02:10,280 --> 00:02:11,320
tipos de datos.

25
00:02:11,420 --> 00:02:16,090
Por ejemplo qué pasa si queremos convertirlo en lugar de tipo entero a un tipo doble.

26
00:02:16,160 --> 00:02:22,850
Vamos a poner el siguiente ejemplo vamos a utilizar por ejemplo el valor de la constante pi así que

27
00:02:22,850 --> 00:02:30,240
definimos la variable valor Pi y ahora vamos a utilizar la clase Doble y mandamos a llamar.

28
00:02:30,260 --> 00:02:41,350
El método de doble y recibe una cadena y en este caso la cadena es 3.14 16 y podemos observar el resultado.

29
00:02:41,540 --> 00:02:47,560
Se está haciendo la conversión del lado derecho se manda llamar a la función doble de la Clase Doble

30
00:02:48,290 --> 00:02:56,320
se le pasa la cadena 3.14 16 y este valor se convierte a un tipo doble así que en nuestra variable valor

31
00:02:56,320 --> 00:03:00,600
Pi ya tenemos este valor pero ya no en cadena sino en tipo doble.

32
00:03:01,570 --> 00:03:07,690
Así que con este valor ya podremos realizar operaciones podemos imprimir el valor de esta variable guardamos

33
00:03:07,690 --> 00:03:18,160
cambios y ejecutamos y podemos observar el valor 3.14 16 así que se ha hecho esta conversión correctamente.

34
00:03:18,290 --> 00:03:25,460
Ahora eso lo podemos utilizar para cualquier otro tipo primitivo como puede ser Big Short integrar double

35
00:03:25,730 --> 00:03:32,870
float etcétera pero para el único caso que es la excepción es para el tipo Char no tenemos una conversión

36
00:03:33,050 --> 00:03:40,310
de Cadena A tipo Char ya que una string tiene uno o muchos caracteres y un char únicamente puede almacenar

37
00:03:40,370 --> 00:03:47,180
un solo carácter pero lo que podemos hacer es lo siguiente Vamos a definir la variable Char llamada

38
00:03:47,190 --> 00:03:54,760
C.B vamos a definir un string por ejemplo el de hola y lo que vamos a hacer para poder realizar esta

39
00:03:54,760 --> 00:04:00,070
conversión realmente lo que vamos a hacer es tomar uno de los caracteres de este string.

40
00:04:00,070 --> 00:04:08,500
Para ello ponemos simplemente punto y mandamos a llamar el método Char at es decir un carácter en cierta

41
00:04:08,500 --> 00:04:14,830
posición de este string para realizar el conteo de caracteres en una cadena se cuentan de la siguiente

42
00:04:14,830 --> 00:04:15,690
forma.

43
00:04:15,700 --> 00:04:17,550
Este es el valor cero.

44
00:04:17,740 --> 00:04:26,650
Este sería el valor 1 ese sería el carácter en la posición 2 y finalmente ese sería el carácter en la

45
00:04:26,650 --> 00:04:34,690
posición 3 y en total son 4 elementos pero podemos observar que entonces inicia desde la posición cero

46
00:04:35,170 --> 00:04:40,780
así que si queremos el carácter en la posición cero tendríamos que proporcionar el índice cero en la

47
00:04:40,780 --> 00:04:47,520
llamada a esta función y esto nos regresaría el carácter h si queremos el carácter o.

48
00:04:47,710 --> 00:04:53,830
Entonces proporcionamos el valor de 1 sería el índice que tenemos que proporcionar si queremos el carácter

49
00:04:53,830 --> 00:04:54,590
de L.

50
00:04:54,640 --> 00:04:58,600
Entonces pasaríamos el valor de 2 y así sucesivamente.

51
00:04:58,600 --> 00:05:02,840
Si queremos el carácter A. Entonces pasamos el valor de 3.

52
00:05:03,010 --> 00:05:10,510
Vamos a realizar esta prueba vamos a pasar el índice cero y vamos a ver que nos imprime imprimimos el

53
00:05:10,510 --> 00:05:18,500
valor de la variable C guardamos cambios y ejecutamos y podemos observar que en este caso ya podemos

54
00:05:18,500 --> 00:05:26,420
realizar la asignación del carácter en este caso el carácter h ya que es el primer carácter y podemos

55
00:05:26,420 --> 00:05:30,350
observar que se cuenta desde cero si queremos el último carácter.

56
00:05:30,500 --> 00:05:36,730
Entonces tenemos que contar de 0 1 2 y sería el tercer carácter.

57
00:05:36,740 --> 00:05:39,780
Por lo tanto tendríamos que poner el índice 3.

58
00:05:40,220 --> 00:05:47,630
Guardamos cambios ejecutamos y podemos observar que en este caso nos regresa el carácter a.

59
00:05:48,380 --> 00:05:52,770
Así que esa es una forma de convertir tipo string a un tipo Char.

60
00:05:53,120 --> 00:06:01,530
Realmente no es convertir toda la cadena sino seleccionar uno de los elementos un carácter de este string.

61
00:06:01,530 --> 00:06:07,410
Ahora todo esto lo vamos a utilizar pero ahora con nuestra clase escaner ya que si recordamos la clase

62
00:06:07,410 --> 00:06:12,400
escaner utiliza el método next Line para leer información de la consola.

63
00:06:12,480 --> 00:06:18,030
Sin embargo esto nos regresa un tipo instruían y por lo tanto si lo queremos asignar a un tipo entero

64
00:06:18,270 --> 00:06:23,940
no vamos a poder realizar la asignación directamente así que vamos a ver el siguiente ejemplo para realizar

65
00:06:24,000 --> 00:06:30,300
una conversión de lo que escribamos en consola y lo vamos a convertir a un tipo entero así que vamos

66
00:06:30,300 --> 00:06:40,680
a escribir el siguiente código escribimos Bahr declaramos nuestra variable de tipo escaner posteriormente

67
00:06:40,680 --> 00:06:49,060
Nioh escaner y vamos a leer información de la consola por lo tanto escribimos Sistem punto yn para leer

68
00:06:49,090 --> 00:06:55,600
información de la consola y posteriormente lo que vamos a hacer es definir una variable de tipo entero

69
00:06:55,900 --> 00:07:03,270
llamado edad que también podremos utilizar Baur pero en este caso para que sea más explícito vamos a

70
00:07:03,270 --> 00:07:06,150
utilizar el tipo primitivo Int.

71
00:07:06,150 --> 00:07:14,060
Así que definimos nuestra variable edad y ahora lo que vamos a hacer es leer información del escáner

72
00:07:14,690 --> 00:07:22,280
del objeto escáner y mandamos a llamar el método next Line ponemos punto y coma.

73
00:07:22,640 --> 00:07:27,830
Sin embargo en este caso la variable edad ya la hemos definido así que ya no es necesario volver a definirla

74
00:07:28,040 --> 00:07:34,720
ya que ya se ha definido anteriormente más bien vamos a reutilizarla y ahora nos manda otro mensaje.

75
00:07:34,940 --> 00:07:40,460
En este caso nos está mandando el mensaje de tipos incompatibles y precisamente estamos en el tema de

76
00:07:40,460 --> 00:07:41,750
conversión de datos.

77
00:07:41,750 --> 00:07:47,360
Por lo tanto en este caso lo que tenemos que hacer es ejecutar la llamada al método integrar punto pars

78
00:07:47,420 --> 00:07:53,000
int ya que este es precisamente el ejemplo que pusimos en práctica recibir una string posteriormente

79
00:07:52,990 --> 00:08:01,260
convertir a un entero y asignarlo a una variable de tipo entero ahora cómo hacemos esto vamos a envolver

80
00:08:01,440 --> 00:08:07,820
toda la llamada de este método de la siguiente forma ponemos integer punto par int

81
00:08:11,600 --> 00:08:17,600
y la llamada de escaner next line debe de estar dentro de la llamada al método pars Int.

82
00:08:17,890 --> 00:08:24,130
Así que el método int recibe como valor lo que escribamos en la consola y posteriormente realiza la

83
00:08:24,130 --> 00:08:26,620
conversión a tipo entero.

84
00:08:26,710 --> 00:08:35,040
Así es como funciona esta línea y posteriormente mandamos a imprimir esta variable pero debe ser la

85
00:08:35,040 --> 00:08:40,190
variable de edad guardamos cambios y ejecutamos

86
00:08:43,590 --> 00:08:49,610
y podemos observar que nos está esperando nos espera para que escribamos el valor de dar y podemos poner

87
00:08:49,610 --> 00:08:57,250
por ejemplo el valor de 18 años y entonces la variable edad recibe el valor de 18.

88
00:08:57,570 --> 00:09:03,820
Y ahora vamos a ver cómo recuperar únicamente un carácter ya que la llamada Annex line lo que nos regresa

89
00:09:03,880 --> 00:09:09,880
es un estruendo pero como ya hemos visto anteriormente podemos hacer uso de la función de echar ATH

90
00:09:10,390 --> 00:09:14,470
cuando estamos trabajando con cadenas para recuperar un carácter.

91
00:09:14,470 --> 00:09:15,970
Así que podemos escribir lo siguiente

92
00:09:18,780 --> 00:09:25,440
definimos una variable llamada carácter de tipo Char utilizamos nuestro objeto escaner y mandamos a

93
00:09:25,440 --> 00:09:31,800
llamar el método next Line y esto nos va a regresar una cadena.

94
00:09:31,800 --> 00:09:38,250
Por lo tanto para que nos regrese ahora únicamente un carácter sabemos que a una cadena le podemos mandar

95
00:09:38,250 --> 00:09:38,730
a llamar.

96
00:09:38,730 --> 00:09:43,680
El método Char ATT y especificar el inicio de la cadena que queremos recuperar.

97
00:09:43,800 --> 00:09:46,970
En este caso queremos recuperar únicamente un carácter.

98
00:09:47,130 --> 00:09:54,440
Por lo tanto le vamos a pedir que nos regrese el primer carácter de la cadena que se escriba imprimimos

99
00:09:54,440 --> 00:09:58,340
el valor de ese carácter y vamos a ejecutar nuestro código.

100
00:09:58,340 --> 00:10:05,610
Guardamos cambios ejecutamos primero nos pide el valor de la edad proporcionamos por ejemplo el valor

101
00:10:05,610 --> 00:10:13,100
de 20 y ahora nos pide el valor del carácter y en este caso podemos poner un carácter o una cadena.

102
00:10:13,170 --> 00:10:20,250
Si escribimos una cadena por ejemplo un nombre el nombre de Juan y escribimos enter lo que nos regresa

103
00:10:20,520 --> 00:10:22,960
es el primer carácter de esta cadena.

104
00:10:23,070 --> 00:10:24,960
En este caso el valor de j.

105
00:10:25,990 --> 00:10:34,430
Vamos a volver a ejecutar para mostrar otro caso ponemos una edad por ejemplo de valor de 20 y ahora

106
00:10:34,430 --> 00:10:35,720
proporcionamos una cadena.

107
00:10:35,720 --> 00:10:41,180
Por ejemplo el símbolo de arroba y podemos observar que así es como podemos solicitar únicamente un

108
00:10:41,200 --> 00:10:47,290
carácter y lo estamos asignando correctamente a la variable de tipo Char.

109
00:10:47,320 --> 00:10:53,130
Ahora vamos a dejar un poco de lado la clase escaner y vamos a ver ahora el caso inverso de cómo convertir

110
00:10:53,160 --> 00:10:55,050
un tipo entero a un tipo destruí.

111
00:10:55,800 --> 00:11:05,360
Vamos a escribir lo siguiente escribimos string edad en texto y para convertir un tipo entero a un tipo

112
00:11:05,370 --> 00:11:14,090
string podemos apoyarnos de la clase string y la clase string tiene un método llamado valio off y podemos

113
00:11:14,090 --> 00:11:23,510
observar que este método puede recibir varios tipos como puede ser el tipo Object bullían Char un arreglo

114
00:11:23,510 --> 00:11:31,010
de tipos Char que posteriormente veremos a detalle el tema de arreglos el tipo de móvil float y long

115
00:11:31,250 --> 00:11:37,820
etcétera así que podemos observar que podemos proporcionar cualquier valor de tipo primitivo y entonces

116
00:11:37,820 --> 00:11:48,000
va a hacer la conversión a un tipo string así que hacemos uso del método value of y proporcionamos por

117
00:11:48,000 --> 00:11:57,180
ejemplo en este caso el valor entero de 25 y posteriormente imprimimos esta variable para ver el valor

118
00:11:59,370 --> 00:12:01,170
guardamos cambios ejecutamos

119
00:12:04,930 --> 00:12:07,430
ponemos el valor de la edad que nos solicita.

120
00:12:07,750 --> 00:12:13,690
Posteriormente el valor del carácter cualquier carácter y podemos observar que ahora la variable edad

121
00:12:13,690 --> 00:12:16,990
texto nos está regresando el valor de 25.

122
00:12:16,990 --> 00:12:24,460
Pero esto ya es un string no es un tipo entero así que ya no podríamos realizar cálculos con esta variable

123
00:12:24,670 --> 00:12:31,850
sino simplemente concatenar a otra cadena o mandarlo a imprimir pero ya no es un tipo numérico ya que

124
00:12:31,870 --> 00:12:40,000
con esta función valio off estamos convirtiendo el tipo entero 25 que es la literal entera 25 y la estamos

125
00:12:40,000 --> 00:12:42,240
convirtiendo a un tipo String.

126
00:12:42,400 --> 00:12:48,680
Así que de esta manera es como podemos convertir tipos enteros a tipo string y esta conversión puede

127
00:12:48,680 --> 00:12:58,800
recibir valores como puede ser el tipo entero de tipo doble de tipo float etc. cualquier tipo primitivo

128
00:12:59,670 --> 00:13:05,700
incluso por ejemplo el valor de fouls si le pasamos este valor guardamos cambios y ejecutamos

129
00:13:09,400 --> 00:13:15,100
proporcionamos el valor de la edad que nos pide el carácter y podemos observar que nos muestre el valor

130
00:13:15,100 --> 00:13:22,060
de Foss pero esto ya es una estrella no es el valor de tipo Vulcano Fools sino es un estrujan así que

131
00:13:22,060 --> 00:13:28,420
con esta función de valio off estamos convirtiendo cualquier tipo primitivo a un tipo string bien por

132
00:13:28,420 --> 00:13:35,170
último vamos a ver una conversión especial que se conoce como castin conversión entre tipos.

133
00:13:35,170 --> 00:13:43,410
Por ejemplo en este caso podemos definir un tipo primitivo de tipo Llort la variable se llama s y la

134
00:13:43,420 --> 00:13:46,380
asignamos por ejemplo el valor de 10.

135
00:13:46,390 --> 00:13:55,580
Posteriormente definimos una variable de tipo bait llamada y lo que vamos a hacer es asignarle el valor

136
00:13:55,700 --> 00:14:02,820
de la variable de tipo Llort y esta asignación no la podemos realizar directamente si esta variable

137
00:14:02,820 --> 00:14:11,400
fuera de tipo entero entonces si la podemos realizar ya que un tipo Yor ocupa 16 bits y el tipo entero

138
00:14:11,460 --> 00:14:19,560
ocupa 32 bits así que un tipo entero sin problema puede almacenar un tipo Llort pero un tipo bait únicamente

139
00:14:19,560 --> 00:14:23,090
tiene 8 bits para almacenar la información.

140
00:14:23,100 --> 00:14:29,120
En cambio el tipo XOR tiene 16 bits por lo tanto un tipo Llort no cabe directamente en un tipo Bayt.

141
00:14:29,820 --> 00:14:35,720
Sin embargo debido a que este valor es válido tanto para un tipo Yor como para un tipo Bayt.

142
00:14:35,730 --> 00:14:42,630
Para hacer esta asignación podemos hacer lo que se conoce como castin o conversión entre tipos y para

143
00:14:42,630 --> 00:14:49,770
hacer la conversión entre tipos podemos indicarle aullaba entre paréntesis el tipo de dato al cual queremos

144
00:14:49,770 --> 00:14:50,730
convertir.

145
00:14:50,760 --> 00:14:59,340
En este caso al tipo bait así que ponemos nuestra variable y la anteponemos el tipo de dato entre paréntesis

146
00:14:59,400 --> 00:15:01,110
al cual queremos convertir.

147
00:15:01,110 --> 00:15:07,080
Con esto estamos haciendo la conversión y todo esto nos va a regresar el valor de diez pero ahora en

148
00:15:07,080 --> 00:15:14,970
tipo Bayt y así es como es posible realizar esta conversión así que esto se conoce como casting o conversión

149
00:15:14,970 --> 00:15:21,800
de tipos mandamos a imprimir el valor de esta variable el valor de la variable que guardamos cambios

150
00:15:21,830 --> 00:15:29,700
y ejecutamos ponemos el valor de la edad el carácter que nos pide y finalmente podemos observar que

151
00:15:29,700 --> 00:15:34,860
el valor de la variable de tipo Veidt contiene correctamente el valor de 10.

152
00:15:34,860 --> 00:15:41,670
Sin embargo deberemos de tener cuidado cuando estamos haciendo esta conversión ya que esto puede provocar

153
00:15:41,670 --> 00:15:48,870
pérdida de información ya que recordemos que un tipo Llort contiene 16 bits y el tipo bit contiene 8

154
00:15:48,870 --> 00:15:49,420
bits.

155
00:15:49,620 --> 00:15:56,160
Así que si asignamos un valor que no soporta el tipo bit recordemos que el valor máximo del tipo Veidt

156
00:15:56,460 --> 00:16:04,320
es el valor de 127 en positivo así que si ponemos el valor de 128 el tipo sólo puede almacenar sin ningún

157
00:16:04,320 --> 00:16:10,980
problema ya que el tipo XOR su valor máximo es aproximadamente de 32000 pero el tipo bit su valor máximo

158
00:16:11,040 --> 00:16:18,090
es de 127 así que este tipo Llort contiene el valor de 128 y lo queremos convertir a un tipo Bayt.

159
00:16:18,120 --> 00:16:24,150
Podemos observar que el compilador al indicarle que queremos hacer esta conversión de manera obligatoria

160
00:16:24,600 --> 00:16:25,890
es decir hacer el casting.

161
00:16:26,310 --> 00:16:33,150
Entonces este valor lo asigna directamente a la variable de tipo bait pero debido a que 128 no cabe

162
00:16:33,210 --> 00:16:40,410
en un bit entonces va a haber pérdida de bits por lo tanto si mandamos a imprimir el valor de esta conversión

163
00:16:41,250 --> 00:16:43,310
guardamos cambios y ejecutamos.

164
00:16:43,410 --> 00:16:49,710
Proporcionamos el valor de edad el carácter que nos piden y podemos observar que en lugar del valor

165
00:16:49,920 --> 00:17:00,540
de 128 en positivo está asignando el valor de menos 128 simplemente vamos a poner el valor de 129 también

166
00:17:00,540 --> 00:17:09,380
va a cortar este número guardamos cambios ejecutamos ponemos un carácter y podemos observar que en este

167
00:17:09,380 --> 00:17:18,440
caso en lugar de escribir 129 ahora está escribiendo el valor de 127 ya que está sucediendo exactamente

168
00:17:18,440 --> 00:17:19,070
lo mismo.

169
00:17:19,190 --> 00:17:24,860
Hay pérdida de bits pero como estamos indicando al compilador que estamos seguros de esta conversión

170
00:17:25,070 --> 00:17:27,030
entonces ya es problema nuestro.

171
00:17:27,110 --> 00:17:34,760
El hacer esta conversión ya que por default el compilador nos dice que estos tipos son incompatibles.

172
00:17:34,760 --> 00:17:41,720
El tipo XOR no se puede asignar al tipo bit ya que como nos comenta puede existir pérdida de información.

173
00:17:41,810 --> 00:17:44,700
Eso es todo por esta elección y nos vemos en el siguiente vídeo.

174
00:17:44,750 --> 00:17:45,410
Saludos.
