1 00:00:00,690 --> 00:00:09,509 Voy a grabar esta clase que es sobre arrays, por lo tanto, si habláis, me autorizáis a grabar vuestra voz en el vídeo, ¿vale? 2 00:00:09,810 --> 00:00:13,509 Ok, hoy vamos a introducir un nuevo elemento, ¿vale? 3 00:00:13,550 --> 00:00:21,030 Otra pieza de la LEGO para construir fantásticos programas y sistemas súper complejos, que son los arrays. 4 00:00:21,149 --> 00:00:25,230 Los arrays estarán con nosotros por un buen rato, ¿vale? 5 00:00:25,230 --> 00:00:37,909 En un futuro lo sustituiremos con otra categoría que son las colecciones, que también nos darán unos cuantos dolores de cabeza, pero por ahora estas serán nuestras colecciones de datos, ¿vale? 6 00:00:38,490 --> 00:00:53,259 Nosotros hasta ahora hemos utilizado variables. Sabemos que es una variable, sabemos las características de una variable, sabemos que tiene un tipo, un nombre y un valor actual, que es normalmente un literal del tipo de datos. 7 00:00:53,259 --> 00:00:53,759 muy bien 8 00:00:53,759 --> 00:00:57,219 solo que 9 00:00:57,219 --> 00:00:59,679 las variables 10 00:00:59,679 --> 00:01:01,320 tienen algunas limitaciones 11 00:01:01,320 --> 00:01:03,140 nosotros hemos empezado a ver 12 00:01:03,140 --> 00:01:04,739 por favor quita el móvil 13 00:01:04,739 --> 00:01:06,400 hemos empezado a ver 14 00:01:06,400 --> 00:01:08,879 algunas limitaciones 15 00:01:08,879 --> 00:01:10,799 de las variables 16 00:01:10,799 --> 00:01:12,319 cuando hemos empezado a hacer 17 00:01:12,319 --> 00:01:15,719 oye mira, leeme 50 variables 18 00:01:15,719 --> 00:01:17,219 leeme 50 números 19 00:01:17,219 --> 00:01:18,000 y luego haz algo 20 00:01:18,000 --> 00:01:19,719 porque la 21 00:01:19,719 --> 00:01:22,599 solución nuestra era 22 00:01:22,599 --> 00:01:25,739 o poner 50 variables, ¿vale? 23 00:01:25,840 --> 00:01:28,659 Cosa que no... no, no. 24 00:01:29,200 --> 00:01:33,900 O no utilizar los numeritos que me ponen, ¿vale? 25 00:01:34,040 --> 00:01:36,480 Y hacer una acumulación, ¿vale? 26 00:01:36,480 --> 00:01:41,760 Cuando nosotros hemos hecho estos ejercicios de calcular la media de los números que ponían por teclado, 27 00:01:42,420 --> 00:01:45,340 nosotros no nos recordábamos los números. 28 00:01:46,200 --> 00:01:52,299 Nos recordábamos sólo cuántos números se habían insertado y la suma de todos los números. 29 00:01:52,599 --> 00:01:57,920 Si pero al final el ejercicio decía, vale, ahora reescríbeme todos los números que te he dado, 30 00:01:58,379 --> 00:02:00,540 pues allí habríamos tenido algún problema, ¿vale? 31 00:02:00,719 --> 00:02:09,240 Habríamos podido intentar, en cierto sentido, hacer trampa y colocarlos en una string, ¿vale? 32 00:02:09,319 --> 00:02:12,000 Lo he añadido allí, pero si luego te dice, Filipe, ahora úsamelo, 33 00:02:12,139 --> 00:02:17,219 súmbame uno de todos los números que te he dado, pues ya allí tenemos un problema, ¿vale? 34 00:02:17,560 --> 00:02:19,219 Los arrays solucionan estos problemas. 35 00:02:19,400 --> 00:02:20,400 ¿Qué es un array? Vamos a ver. 36 00:02:20,400 --> 00:02:22,759 un array 37 00:02:22,759 --> 00:02:25,099 de java es una estructura 38 00:02:25,099 --> 00:02:27,099 de datos que nos permite almacenar un conjunto 39 00:02:27,099 --> 00:02:28,639 de datos del mismo tipo 40 00:02:28,639 --> 00:02:30,080 es una variable 41 00:02:30,080 --> 00:02:32,699 ¿vale? pero 42 00:02:32,699 --> 00:02:34,759 en vez de tener una sola 43 00:02:34,759 --> 00:02:36,919 casillita en el que pongo 44 00:02:36,919 --> 00:02:39,099 un valor, tiene muchas 45 00:02:39,099 --> 00:02:40,000 casillitas 46 00:02:40,000 --> 00:02:43,340 y puedo poner en cada una de estas casillitas 47 00:02:43,340 --> 00:02:44,939 un valor distinto 48 00:02:44,939 --> 00:02:46,000 del mismo tipo 49 00:02:46,000 --> 00:02:49,020 si es un array de enteros, todos los 50 00:02:49,020 --> 00:02:50,759 O sea, las casillitas tendrán un entero. 51 00:02:51,120 --> 00:02:54,219 Si es un array de string, todas las casillitas tendrán un string. 52 00:02:54,560 --> 00:02:59,860 Pero en vez de un solo literal, puedo almacenar allí varios literales. 53 00:03:00,039 --> 00:03:01,460 ¿Cuántos? ¿Cuántos yo diga? 54 00:03:02,240 --> 00:03:05,159 Yo digo, quiero un array de siete posiciones, 55 00:03:05,580 --> 00:03:09,020 pues ahora tengo una multivariable, una variable múltiple, 56 00:03:09,020 --> 00:03:13,020 que tiene un solo nombre, pero tiene dentro siete celdas 57 00:03:13,599 --> 00:03:18,800 en las que puedo almacenar siete valores del tipo del array. 58 00:03:19,020 --> 00:03:22,840 Si tengo un array de enteros y le digo, tu tamaño es 10, 59 00:03:23,139 --> 00:03:26,020 pues ahora tengo esta variable, sustancialmente, 60 00:03:26,360 --> 00:03:27,400 y ahora veremos cómo se usa, 61 00:03:27,740 --> 00:03:30,099 en la que tiene 10 compartimentos, 62 00:03:30,259 --> 00:03:32,240 en cada compartimento puedo guardar un enter. 63 00:03:33,800 --> 00:03:34,060 Cuidado. 64 00:03:35,599 --> 00:03:37,020 Ya está, mañana examino. 65 00:03:37,919 --> 00:03:41,680 El tamaño de los arrays se declara en un primer momento 66 00:03:41,680 --> 00:03:45,060 y no puede cambiar en tiempo de ejecución. 67 00:03:45,240 --> 00:03:47,199 Este es el problema grande de los arrays. 68 00:03:47,199 --> 00:03:49,000 ¿Vale? Cuando tú dices 69 00:03:49,000 --> 00:03:50,960 Este array es de tamaño 7 70 00:03:50,960 --> 00:03:52,919 Pues este array es de tamaño 7 71 00:03:52,919 --> 00:03:54,639 ¿Puede cambiar de tamaño? No 72 00:03:54,639 --> 00:03:57,159 Tiene 7 celdas y así es 73 00:03:57,159 --> 00:03:59,000 Veremos que hay una técnica 74 00:03:59,000 --> 00:04:01,360 Arcana 75 00:04:01,360 --> 00:04:02,300 De 76 00:04:02,300 --> 00:04:04,400 Nono nivel ¿Vale? 77 00:04:05,060 --> 00:04:07,240 Que permite en tiempo 78 00:04:07,240 --> 00:04:09,199 De ejecución, pillar un array y hacerlo 79 00:04:09,199 --> 00:04:11,020 Más grande, pero no es 80 00:04:11,020 --> 00:04:12,560 Que hago más grande el array 81 00:04:12,560 --> 00:04:15,159 Es que creo un array nuevo más grande 82 00:04:15,159 --> 00:04:15,719 Y me lo cojo 83 00:04:15,719 --> 00:04:20,800 en general tened en cuenta que 84 00:04:20,800 --> 00:04:22,800 en Java un array 85 00:04:22,800 --> 00:04:24,660 tiene su tamaño y ese es el tamaño 86 00:04:24,660 --> 00:04:26,180 que tiene, vale, se acabó 87 00:04:26,180 --> 00:04:28,519 si queréis una cosa dinámica, o sea 88 00:04:28,519 --> 00:04:30,699 algo que tú puedes añadir un objeto 89 00:04:30,699 --> 00:04:32,660 y ha añadido 10 y ahora, oh, se me ocurre 90 00:04:32,660 --> 00:04:34,279 añadir uno más y añades uno más 91 00:04:34,279 --> 00:04:35,300 pues con los arrays 92 00:04:35,300 --> 00:04:39,060 hay cosas más avanzadas 93 00:04:39,060 --> 00:04:40,800 que se llaman las colecciones, que veremos 94 00:04:40,800 --> 00:04:42,279 que si te permiten hacer esto 95 00:04:42,279 --> 00:04:44,519 que son estructuras de datos dinámicas 96 00:04:44,519 --> 00:04:46,160 Pero esta de aquí, no 97 00:04:46,160 --> 00:04:47,100 ¿Vale? 98 00:04:48,920 --> 00:04:50,639 ¿Cómo se declara un array? 99 00:04:50,819 --> 00:04:52,360 ¿Vale? Con esta estructura de aquí 100 00:04:52,360 --> 00:04:55,160 Tipo, símbolos raros 101 00:04:55,160 --> 00:04:56,920 Nombre del array 102 00:04:56,920 --> 00:04:58,699 Punto y coma, como una variable 103 00:04:58,699 --> 00:05:00,019 ¿Vale? Int 104 00:05:00,019 --> 00:05:02,879 Edad, solo que además 105 00:05:02,879 --> 00:05:04,819 De int edad, le pones estos 106 00:05:04,819 --> 00:05:06,519 Simbolitos de aquí que te hacen decir 107 00:05:06,519 --> 00:05:08,279 Mira, tú no eres una variable normal 108 00:05:08,279 --> 00:05:09,540 Eres un array 109 00:05:09,540 --> 00:05:10,680 ¿Sí? 110 00:05:12,500 --> 00:05:13,839 Entonces, por ejemplo, int 111 00:05:13,839 --> 00:05:15,839 bla bla bla, no sé qué son estos 112 00:05:15,839 --> 00:05:17,879 paréntesis cuadras, corchetes 113 00:05:17,879 --> 00:05:20,439 int corchetes mi array de int 114 00:05:20,439 --> 00:05:22,319 pues esta es una variable 115 00:05:22,319 --> 00:05:23,879 que se llama mi array de int 116 00:05:23,879 --> 00:05:25,500 que tiene como tipo 117 00:05:25,500 --> 00:05:27,279 array de entero 118 00:05:27,279 --> 00:05:31,730 entonces aquí dentro 119 00:05:31,730 --> 00:05:33,490 no me esperaré de encontrar 120 00:05:33,490 --> 00:05:35,610 un solo, una sola celda 121 00:05:35,610 --> 00:05:37,930 con un valor, no una colección 122 00:05:37,930 --> 00:05:39,689 de enteros, varios enteros 123 00:05:40,709 --> 00:05:43,689 string corchetes mi array 124 00:05:43,689 --> 00:05:45,629 string, la misma cosa, solo que 125 00:05:45,629 --> 00:05:47,629 dentro tendrá varias celdas, todavía 126 00:05:47,629 --> 00:05:49,670 no sé cuánto. Esto es equivalente a 127 00:05:49,670 --> 00:05:50,930 cuando nosotros vimos 128 00:05:50,930 --> 00:05:53,509 las declaraciones 129 00:05:53,509 --> 00:05:55,769 y había int x, punto 130 00:05:55,769 --> 00:05:57,750 y coma. Y todavía no habíamos 131 00:05:57,750 --> 00:05:59,149 puesto ningún dato dentro. 132 00:05:59,569 --> 00:06:01,730 Estamos a ese nivel de ahí. Ahora vemos 133 00:06:01,730 --> 00:06:02,829 cómo lo inicializamos. 134 00:06:05,509 --> 00:06:06,930 ¿Habéis visto alguna regla? 135 00:06:07,470 --> 00:06:12,199 String args. 136 00:06:13,660 --> 00:06:15,180 Public static void 137 00:06:15,180 --> 00:06:17,959 de string args, string corchete args. 138 00:06:18,360 --> 00:06:21,040 Args es un array de string, ¿vale? 139 00:06:21,139 --> 00:06:23,519 Desde el primer día estáis usando arrays 140 00:06:23,519 --> 00:06:24,500 y no lo sabéis. 141 00:06:25,540 --> 00:06:26,480 ¿Sí? Vale. 142 00:06:27,660 --> 00:06:28,720 Inicialización, ¿vale? 143 00:06:29,579 --> 00:06:32,699 Nombre de array, que sería el que he usado aquí, 144 00:06:33,060 --> 00:06:37,819 es igual a new tipo tamaño, ¿vale? 145 00:06:38,259 --> 00:06:40,480 O sea, por ejemplo, mi array de int, 146 00:06:40,480 --> 00:06:43,160 que era de tipo int corchetes, 147 00:06:43,160 --> 00:06:44,939 pues será mi array de int es igual a 148 00:06:44,939 --> 00:06:47,279 new int corchete 20 149 00:06:47,279 --> 00:06:48,740 corchete. ¿Vale? 150 00:06:48,959 --> 00:06:51,079 ¿Qué quiere decir esto? Que sustancialmente 151 00:06:51,079 --> 00:06:51,939 voy a crear 152 00:06:51,939 --> 00:06:54,480 un espacio en memoria 153 00:06:54,480 --> 00:06:56,759 que puede contener 20 154 00:06:56,759 --> 00:06:58,399 enteros. ¿Vale? 155 00:06:59,060 --> 00:07:00,519 Y lo referenciaré, 156 00:07:00,740 --> 00:07:02,040 me... 157 00:07:02,040 --> 00:07:04,899 lo voy a encontrar, voy a 158 00:07:04,899 --> 00:07:06,560 llegar a ese espacio 159 00:07:06,560 --> 00:07:08,399 usando la palabra 160 00:07:08,399 --> 00:07:10,839 mi array de int. ¿Vale? Antes 161 00:07:10,839 --> 00:07:12,939 cuando yo hacía int data es igual 162 00:07:12,939 --> 00:07:19,300 la 9 yo tenía un espacio en memoria para llegar a ese espacio de memoria utilizaba edad vale edad 163 00:07:19,300 --> 00:07:31,560 del el nombre de ese espacio era un una representación simbólica de ese dato luego 164 00:07:31,560 --> 00:07:37,160 ese dato podía cambiar a 10 puede cambiar 12 pero yo siempre en mi programa lo me referenciaba este 165 00:07:37,160 --> 00:07:38,920 a ese dato como edad. 166 00:07:39,319 --> 00:07:41,259 Me da igual el valor que tiene en ese 167 00:07:41,259 --> 00:07:43,319 momento. El valor se irá a pescar 168 00:07:43,319 --> 00:07:45,160 en el momento en que estoy 169 00:07:45,160 --> 00:07:47,240 ejecutando mi programa, iré 170 00:07:47,240 --> 00:07:48,939 a ese espacio de memoria y veré que hay 171 00:07:48,939 --> 00:07:50,100 almacenado ahí dentro. 172 00:07:50,939 --> 00:07:53,180 Aquí la misma cosa, solo que en vez de tener 173 00:07:53,180 --> 00:07:55,500 una celda sola, tendré 174 00:07:55,500 --> 00:07:57,199 en este caso 20 celdas. 175 00:07:58,139 --> 00:07:58,819 De esta 176 00:07:58,819 --> 00:08:00,660 línea de aquí, es la siguiente, 177 00:08:00,879 --> 00:08:02,959 mi array de strings igual a mi string de 15. 178 00:08:03,500 --> 00:08:05,420 15 celdas que contienen 179 00:08:05,420 --> 00:08:11,660 cada una, un string de cada una. De estas dos líneas, o tres si queréis, 180 00:08:11,660 --> 00:08:29,379 puedo deducir algo sobre los arrays. ¿Qué los arrays son? Exacto, objetos. ¿Os acordáis que 181 00:08:29,379 --> 00:08:36,820 nosotros hemos visto el new pocas veces? ¿Cuándo habéis visto el new? En el escáner. Y nosotros decimos, 182 00:08:36,820 --> 00:08:41,279 escáner es un objeto, es una cosa rara, que nosotros todavía no usamos los objetos, no 183 00:08:41,279 --> 00:08:47,259 No sabemos qué son, pero cuando yo hago New Scanner, lo que estoy haciendo es crear una nueva estancia de este objeto. 184 00:08:47,460 --> 00:08:52,019 Y luego lo uso, que es una caja negra para mí, que tiene metoditos, tiene funciones, 185 00:08:52,340 --> 00:08:54,340 que cuando la llamo me permite leer de teclado. 186 00:08:54,440 --> 00:08:57,039 ¿Cómo funciona? No tengo ni idea, pero sé que funciona así. 187 00:08:57,700 --> 00:08:59,220 Aquí vuelvo a reutilizar el New. 188 00:08:59,620 --> 00:09:06,740 El New es la palabra mágica que sustancialmente instancia objetos, crea objetos. 189 00:09:06,740 --> 00:09:22,480 Entonces, el hecho de que aquí, al hacer el array, esté utilizando la palabra new, me da una pista de que, en realidad, dentro, este señor no es una variable de tipo primitivo. 190 00:09:22,980 --> 00:09:24,980 Esta aquí es algo más complejo. 191 00:09:25,059 --> 00:09:25,179 Eso. 192 00:09:26,799 --> 00:09:39,740 Si os acordáis, breve paréntesis, si os acordáis, los tipos primitivos, 193 00:09:39,740 --> 00:09:58,379 Cuando yo tenía int x, esto que es igual a 4, esto me creaba en un espacio de memoria una variable que se llamaba x de tipo int y aquí dentro me ponía el valor. 194 00:09:59,120 --> 00:10:01,139 Esto vale por todos los tipos primitivos. 195 00:10:02,620 --> 00:10:08,279 Sin embargo, lo vimos, no me acuerdo exactamente por qué contexto, en string o probablemente cosa por el estilo. 196 00:10:08,279 --> 00:10:13,080 Cuando lo que yo estoy utilizando no son tipos primitivos, 197 00:10:13,080 --> 00:10:15,360 más son objetos, ¿vale? 198 00:10:15,360 --> 00:10:17,379 La cosa era un poquito distinta. 199 00:10:17,379 --> 00:10:25,710 Yo tenía un tipo, por ejemplo, string, tenía un valor, edad, 200 00:10:27,389 --> 00:10:33,210 pero lo que encontraba aquí no era el valor real. 201 00:10:33,210 --> 00:10:37,470 El valor real se creaba por otro lado, en el heap, 202 00:10:37,470 --> 00:10:41,509 que es una zona de memoria 203 00:10:41,509 --> 00:10:43,309 ¿vale? donde se creaba 204 00:10:43,309 --> 00:10:45,149 el objeto string ¿vale? 205 00:10:45,210 --> 00:10:47,250 este es un objeto string con dentro 206 00:10:47,250 --> 00:10:47,789 hola 207 00:10:47,789 --> 00:10:51,149 y aquí lo que tenía era una 208 00:10:51,149 --> 00:10:53,429 dirección, un código, una 209 00:10:53,429 --> 00:10:55,590 cosa rara que me apuntaba 210 00:10:55,590 --> 00:10:57,389 a este bloque 211 00:10:57,389 --> 00:10:57,789 aquí 212 00:10:57,789 --> 00:11:01,289 era la razón de por qué cuando uso el igual igual 213 00:11:01,289 --> 00:11:02,830 no me funciona 214 00:11:02,830 --> 00:11:05,309 porque el igual igual está comprobando esta 215 00:11:05,309 --> 00:11:07,210 cosa de aquí con otra y no 216 00:11:07,210 --> 00:11:08,570 si son el mismo objeto 217 00:11:08,570 --> 00:11:22,929 Pues el array es algo parecido. Mi array será de este tipo de aquí, no de este tipo de aquí. 218 00:11:22,929 --> 00:11:30,990 No tengo yo aquí los valores. Esto tendré un puntero, una referencia a una zona de memoria 219 00:11:30,990 --> 00:11:38,679 donde dentro habrá mis celdas, 4, 10, 20, cuantas haya creado, 220 00:11:38,679 --> 00:11:44,299 y en cada una de estas celdas tendré un objeto del tipo que he utilizado. 221 00:11:44,460 --> 00:11:49,259 O sea, este int, pues aquí tendré entero, entero, entero, entero, entero. 222 00:11:50,700 --> 00:11:52,519 String, string, string, string, string, string. 223 00:11:53,620 --> 00:11:54,879 Un pero es otro string. 224 00:11:55,539 --> 00:11:56,500 ¿Se entiende? 225 00:11:57,440 --> 00:11:57,840 ¿Dudas? 226 00:11:59,519 --> 00:12:01,980 Estas celdas van numeradas, ¿vale? 227 00:12:02,240 --> 00:12:06,879 Cero, uno, dos, tres, cuatro. 228 00:12:07,879 --> 00:12:08,480 Sí. 229 00:12:08,679 --> 00:12:14,860 Si yo en un array tengo una lista de frames, ¿no sería una lista de objetos dentro de objetos? 230 00:12:14,860 --> 00:12:22,610 En vez que el que tengo aquí, tendría cosas como estas que apuntan a varios otros objetos. 231 00:12:23,070 --> 00:12:24,330 Pero prácticamente no lo veo. 232 00:12:26,549 --> 00:12:29,289 Con int, con tipo primitivo, que es más fácil de entender, 233 00:12:29,990 --> 00:12:33,470 la idea es que en cada uno de estos aquí podré poner un entero 234 00:12:33,470 --> 00:12:36,090 y cada una de estas celdas tiene un índice. 235 00:12:36,330 --> 00:12:37,590 0, 1, 2, 3, 4. 236 00:12:37,590 --> 00:12:40,129 ¿Vale? Esto sería un array de cuántas posiciones? 237 00:12:41,629 --> 00:12:42,149 Cinco. 238 00:12:42,250 --> 00:12:43,769 Cinco. Siempre los arrays van de cero 239 00:12:43,769 --> 00:12:45,409 a número de posiciones menos uno. 240 00:12:45,889 --> 00:12:47,370 ¿Sí? ¿No recuerda algo? 241 00:12:48,850 --> 00:12:49,049 For. 242 00:12:50,389 --> 00:12:51,389 ¿O la for? 243 00:12:51,970 --> 00:12:53,590 ¿Vale? ¿Os acordáis que el for bonito 244 00:12:53,590 --> 00:12:55,669 empezaba en cero y acababa en n menos uno? 245 00:12:55,789 --> 00:12:56,990 O sea, en menor que n. 246 00:12:57,610 --> 00:12:59,710 Perfecto para una 247 00:12:59,710 --> 00:13:01,370 cosa de ese estilo. Lo veremos. ¿Vale? 248 00:13:01,929 --> 00:13:03,730 Y entonces, yo tengo el nombre 249 00:13:03,730 --> 00:13:05,309 arr, ¿vale? 250 00:13:05,309 --> 00:13:06,570 Arr es el array. 251 00:13:06,570 --> 00:13:09,049 Y cuando accedo a R, le tendré que decir, 252 00:13:09,129 --> 00:13:12,929 oye, mira, accede a la estructura R en posición 3. 253 00:13:13,309 --> 00:13:15,509 Entonces estaré accediendo a esta cosa de aquí. 254 00:13:16,289 --> 00:13:20,029 O a la estructura R en posición 0. 255 00:13:20,210 --> 00:13:22,110 Entonces estaré accediendo a esta celda. 256 00:13:23,450 --> 00:13:23,929 Closso. 257 00:13:24,470 --> 00:13:24,809 ¿Sí? 258 00:13:25,690 --> 00:13:27,149 Volvamos aquí. 259 00:13:27,570 --> 00:13:30,750 Entonces, con esto yo creo un array de 20 posiciones. 260 00:13:30,750 --> 00:13:32,269 Con esto creo un array de 15. 261 00:13:32,730 --> 00:13:32,789 ¿Sí? 262 00:13:32,789 --> 00:13:36,809 claramente, se pueden hacer a la vez 263 00:13:36,809 --> 00:13:39,190 o sea, yo puedo hacer int corchetes 264 00:13:39,190 --> 00:13:42,529 mi array de int es igual a new int de 20 265 00:13:42,529 --> 00:13:44,970 todo en una línea 266 00:13:44,970 --> 00:13:46,210 ningún problema 267 00:13:46,210 --> 00:13:50,529 ¿cómo se asignan los valores a sus celdas? 268 00:13:50,590 --> 00:13:52,789 o sea, yo he creado 20 celdas, ¿cómo accedo a una? 269 00:13:52,950 --> 00:13:56,330 el nombre del array, corchete el número de la celda 270 00:13:56,330 --> 00:13:57,909 cerro corchete, igual valor 271 00:13:57,909 --> 00:14:02,750 por ejemplo, mi array int de 0 es igual a 16 272 00:14:02,750 --> 00:14:05,509 lo que hace es llegar a mi array de int 273 00:14:05,509 --> 00:14:07,649 que tiene 20 posibles celdas 274 00:14:07,649 --> 00:14:09,309 accede a la celda 0 275 00:14:09,309 --> 00:14:11,690 y allí dentro le pone el valor 16 276 00:14:11,690 --> 00:14:13,649 ¿entiendes? 277 00:14:16,500 --> 00:14:16,899 bueno, si 278 00:14:16,899 --> 00:14:18,659 lo hago gráficamente 279 00:14:18,659 --> 00:14:21,139 nosotros tenemos nuestro array 280 00:14:21,139 --> 00:14:24,019 que son 20 posiciones 281 00:14:24,019 --> 00:14:24,759 ¿vale? 282 00:14:25,340 --> 00:14:26,840 entonces yo tendré 283 00:14:26,840 --> 00:14:32,490 un array 284 00:14:32,490 --> 00:14:34,629 un array 285 00:14:34,629 --> 00:14:37,509 ¿vale? y aquí tengo 286 00:14:37,509 --> 00:14:47,950 varias posiciones. La primera posición, esto es ART. ART tiene un valor que apunta a esta 287 00:14:47,950 --> 00:14:54,190 estructura aquí. Cuando entro en ART llego a esta estructura. Y esta estructura tiene 20 celdas y 288 00:14:54,190 --> 00:14:58,870 cada una de estas celdas tiene un numerito. Entonces este es el numerito 0, este es el 289 00:14:58,870 --> 00:15:05,830 numerito 1, 2, bla, bla, bla, bla, bla, bla, hasta las últimas dos, que son las 18 y las 19. 290 00:15:05,830 --> 00:15:20,230 Porque de 0 a 19, 20 posiciones. Ahora, si yo hago ar corchetes de 0 corchete es igual a 16, 291 00:15:21,370 --> 00:15:27,970 esto me está diciendo, vete a ar, vale, estoy aquí, llego a esta cosa. Aquí tengo 20 posiciones en 292 00:15:27,970 --> 00:15:36,509 el que puede escribir? Pues usa la posición 0, o sea, esta. Y aquí dentro guardas el 16. 293 00:15:36,509 --> 00:16:00,480 O sea, que yo pongo 16 aquí dentro. Si yo hiciera R de 19 es igual a 7. Muy bien. 294 00:16:00,480 --> 00:16:03,360 Para complicar 295 00:16:03,360 --> 00:16:03,659 ¿Vale? 296 00:16:03,740 --> 00:16:04,419 Si yo hiciera 297 00:16:04,419 --> 00:16:05,320 R 298 00:16:05,320 --> 00:16:08,500 De R 299 00:16:08,500 --> 00:16:11,240 De 19 300 00:16:11,240 --> 00:16:16,840 Es igual a 4 301 00:16:16,840 --> 00:16:18,600 ¿Qué haría? 302 00:16:18,980 --> 00:16:19,259 7 303 00:16:19,259 --> 00:16:24,059 Ahí 304 00:16:24,059 --> 00:16:30,120 ¿Y tú ya el 7 por el 4? 305 00:16:30,360 --> 00:16:30,620 No 306 00:16:30,620 --> 00:16:33,120 ¿Has pedido R? 307 00:16:34,120 --> 00:16:35,259 ¿En qué posición? 308 00:16:35,259 --> 00:16:36,639 ¿Qué hay aquí dentro? 309 00:16:38,159 --> 00:16:38,840 7. 310 00:16:39,679 --> 00:16:41,139 Entonces esto vale 7. 311 00:16:41,980 --> 00:16:43,740 Entonces accedería a R de 7 312 00:16:43,740 --> 00:16:45,480 y allí dentro pondría un 4. 313 00:16:46,820 --> 00:16:48,740 Entonces en la posición 7 314 00:16:48,740 --> 00:16:50,919 pondría un 4. 315 00:16:52,120 --> 00:16:52,960 Esto es complejo. 316 00:16:53,220 --> 00:16:54,779 Era para... 317 00:16:54,779 --> 00:16:55,799 Olvidaoslo. 318 00:16:59,740 --> 00:17:01,120 Explota. Ahora llegamos. 319 00:17:05,259 --> 00:17:12,839 A mí me gusta decir que cuando el programa no funciona explota, ¿vale? 320 00:17:13,059 --> 00:17:16,859 Porque os llamo vuestra atención, vosotros estáis acostumbrados a explosiones, ¿vale? 321 00:17:17,180 --> 00:17:24,180 No lo digáis ni en el examen ni con otros profesores, 322 00:17:24,180 --> 00:17:29,680 que el año pasado me echaban la bronca porque vosotros, en otras categorías de alumnos, 323 00:17:30,000 --> 00:17:34,380 en otros exámenes escritos ponían esto no funciona porque explota. 324 00:17:34,380 --> 00:17:36,380 Pues no, no explota nada. 325 00:17:36,819 --> 00:17:38,240 Es una forma de verlo. 326 00:17:39,680 --> 00:17:41,660 ¿No estás enseñando a hacer explotar cosas? 327 00:17:41,859 --> 00:17:42,259 ¡Cabrón! 328 00:17:44,180 --> 00:17:44,859 ¡Vale! 329 00:17:46,180 --> 00:17:48,200 Entonces, por ejemplo, 330 00:17:48,900 --> 00:17:50,819 mi array de string de 0 331 00:17:50,819 --> 00:17:52,539 es igual a Pepe. 332 00:17:53,079 --> 00:17:53,339 ¿Vale? 333 00:17:53,519 --> 00:17:55,980 Pondrá Pepe dentro de esta cosa. 334 00:17:56,559 --> 00:17:58,000 Esto me hace pensar. 335 00:17:58,779 --> 00:17:59,880 Vale, entonces, 336 00:18:01,160 --> 00:18:02,380 hay también una forma de hacer 337 00:18:02,380 --> 00:18:10,480 todo el 1 la creación de un array vale se puede crear así de esta forma de aquí vale no siempre 338 00:18:10,480 --> 00:18:17,200 es es funcional pero a veces puede servir vale esta cosa de aquí veis con corchetes cosas y 339 00:18:17,200 --> 00:18:24,579 crearía una ley de cuántas posiciones tres posiciones en la posición 0 pondría 1 en la 340 00:18:24,579 --> 00:18:32,019 posición 1 pondría menos 2 en la posición 2 pondría 3 en este caso no 341 00:18:32,380 --> 00:18:35,940 Pero hay veces que esto no se puede usar. 342 00:18:37,000 --> 00:18:38,420 Imagínate ejercicio. 343 00:18:38,920 --> 00:18:41,019 El usuario me dice un número 344 00:18:41,019 --> 00:18:45,500 y yo luego pillo ese número de datos y hago algo. 345 00:18:45,819 --> 00:18:49,740 Yo te pongo 19, tú tienes que poner 19 datos más. 346 00:18:50,119 --> 00:18:52,259 Yo te pongo 5, tú pones 5 datos más. 347 00:18:52,380 --> 00:18:55,259 Pues tengo que crear un array de las posiciones que me da el usuario. 348 00:18:55,640 --> 00:18:56,660 Esto no lo puedo usar. 349 00:18:56,940 --> 00:18:58,440 Lo tengo que usar aquí, así. 350 00:18:59,440 --> 00:19:02,019 Y aquí ponerle el número que me ha dado uso. 351 00:19:02,380 --> 00:19:17,460 Haremos ejemplo. Variables índice, ¿vale? Una de las ventajas de los array es que se puede acceder a cada compartimento utilizando un número entero, un intervalo, o sea que la celda está numerada. 352 00:19:17,460 --> 00:19:39,339 Si este número no es literal, sino variable, en vez de utilizar el numerito le puedo poner una variable allí dentro y entonces puedo cambiar luego el valor de la variable y él accederá a la casilla correspondiente. 353 00:19:39,339 --> 00:19:40,559 ¿Se entiende lo que quiero decir? 354 00:19:40,900 --> 00:19:45,039 O sea que hasta aquí está accediendo a un número concreto, 355 00:19:45,240 --> 00:19:47,579 a un literal, a 19, a 7, a 45, 356 00:19:47,819 --> 00:19:49,359 pero yo puedo acceder a A. 357 00:19:49,720 --> 00:19:49,900 ¿Vale? 358 00:19:49,940 --> 00:19:52,759 Es un poco este ejemplo que ya os he hecho yo. 359 00:19:53,000 --> 00:19:53,200 ¿Vale? 360 00:19:53,279 --> 00:19:56,160 Aquí, en vez de poner un número, os he puesto una variable, 361 00:19:56,500 --> 00:19:58,059 que además era una ley. 362 00:19:58,359 --> 00:19:58,539 ¿Vale? 363 00:19:58,700 --> 00:20:01,500 Entonces, ahora llegamos allí cuando hacemos los ejemplos. 364 00:20:04,299 --> 00:20:08,000 Esto en particular me suena mucho a esta I, 365 00:20:08,000 --> 00:20:10,079 que esta i es 366 00:20:10,079 --> 00:20:11,500 un for. 367 00:20:12,140 --> 00:20:14,319 Entonces, si yo tengo un for que la i va 368 00:20:14,319 --> 00:20:16,299 de 0 a el tamaño 369 00:20:16,299 --> 00:20:17,640 de la rey menos 1, 370 00:20:18,180 --> 00:20:20,180 pues lo que me está haciendo es recorrerme 371 00:20:20,180 --> 00:20:22,539 la rey, ir en todas las celdas 372 00:20:22,539 --> 00:20:24,180 de la rey y pillar el número 373 00:20:24,180 --> 00:20:26,339 o meter un número o hacer algo 374 00:20:26,339 --> 00:20:27,680 con cada una de las celdas. 375 00:20:28,759 --> 00:20:28,980 ¿Eh? 376 00:20:28,980 --> 00:20:31,279 Muy bien. 377 00:20:32,180 --> 00:20:32,680 ¡Chica! 378 00:20:33,799 --> 00:20:34,319 ¡Ejemplo! 379 00:20:35,160 --> 00:20:37,000 Entonces, aquí tengo esta 380 00:20:37,000 --> 00:20:50,380 cosa de aquí que hace esta cosa aquí la primera línea que hace no me imprime nada que hace esta 381 00:20:50,380 --> 00:21:02,680 primera línea de la primera línea del menino señores como sois sí claro 382 00:21:11,390 --> 00:21:22,250 de siete posiciones el lunes en qué posición está el hacer el lunes esta posición 0 martes 383 00:21:22,250 --> 00:21:31,549 en posición 1 miércoles en posición 2 lo veis sí claro para todos y entonces si esto está claro 384 00:21:31,549 --> 00:21:45,210 que escribe esta maravillosa cosa aquí sí que es más que escribe en pantalla primer día de la 385 00:21:45,210 --> 00:21:52,769 semana lunes y el último es domingo y un remedio es 386 00:22:00,690 --> 00:22:05,369 dudas cuidado con que hay tres es miércoles no 387 00:22:05,369 --> 00:22:17,670 vale pero 1 2 3 9 vale lo que decías tú antes vale qué pasa si yo digo ah muy bien ahora voy 388 00:22:17,670 --> 00:22:27,329 a acceder a 6 vale fijaos que aquí he quitado 1 y tengo 1 2 3 4 5 6 días aquí dentro entonces es 389 00:22:27,329 --> 00:22:28,930 es un array de seis posiciones 390 00:22:28,930 --> 00:22:30,750 que van del cero al cinco. 391 00:22:31,230 --> 00:22:33,529 Y aquí intento acceder en día seis. 392 00:22:34,450 --> 00:22:34,630 ¿Vale? 393 00:22:35,170 --> 00:22:37,970 Pues me salta la que se llama una excepción. 394 00:22:38,109 --> 00:22:38,630 Exception. 395 00:22:39,630 --> 00:22:39,829 ¿Vale? 396 00:22:40,950 --> 00:22:43,089 En Java, los errores, 397 00:22:43,289 --> 00:22:44,609 hay varios tipos de errores, 398 00:22:44,609 --> 00:22:46,509 lo veremos cuando hablemos de las excepciones, 399 00:22:46,990 --> 00:22:49,829 pero los errores estándar, digamos, de Java 400 00:22:49,829 --> 00:22:51,470 son lo que se llaman excepciones. 401 00:22:51,710 --> 00:22:56,349 Son mensajes que te manda la Java Virtual Machine 402 00:22:56,349 --> 00:22:58,430 para decir, aquí ha pasado algo. 403 00:22:59,069 --> 00:23:00,529 Aquí hay una excepción 404 00:23:00,529 --> 00:23:02,670 en el normal 405 00:23:02,670 --> 00:23:03,990 funcionamiento del programa. 406 00:23:04,690 --> 00:23:06,069 ¿Vale? Y tú puedes decir, oye, 407 00:23:06,450 --> 00:23:08,410 pillo esta excepción y hago algo con ella. 408 00:23:08,630 --> 00:23:10,490 O puedes decir, no hago nada, y dejar 409 00:23:10,490 --> 00:23:12,410 que explote todo mi programa. ¿Vale? 410 00:23:12,769 --> 00:23:13,730 En este caso, 411 00:23:14,150 --> 00:23:16,549 cada una de estas excepciones tiene un nombre, 412 00:23:16,670 --> 00:23:17,710 tiene un tipo, tiene una 413 00:23:17,710 --> 00:23:20,210 descripción en un cierto sentido. 414 00:23:20,789 --> 00:23:22,410 Esta de aquí es la 415 00:23:22,410 --> 00:23:24,069 array index 416 00:23:24,069 --> 00:23:26,390 out of bounds exception. 417 00:23:27,289 --> 00:23:27,390 ¿Vale? 418 00:23:27,589 --> 00:23:29,210 Excepción de índice 419 00:23:29,210 --> 00:23:31,309 fuera de los límites de un array. 420 00:23:32,309 --> 00:23:33,549 Está bastante claro que es. 421 00:23:33,890 --> 00:23:34,089 ¿Vale? 422 00:23:34,089 --> 00:23:36,089 Si tú tienes 6 posiciones 423 00:23:36,089 --> 00:23:38,029 y accedes a la posición 6, 424 00:23:38,130 --> 00:23:39,630 la posición 6 no existe 425 00:23:39,630 --> 00:23:40,930 y por lo tanto te dice 426 00:23:40,930 --> 00:23:42,430 que te has extralimitado 427 00:23:42,430 --> 00:23:44,890 de las celdas del array. 428 00:23:45,329 --> 00:23:47,170 También si le pusiera menos 1 429 00:23:47,170 --> 00:23:49,990 me daría array index out of bounds 430 00:23:49,990 --> 00:23:52,750 porque los bounds son entre 0 y 5. 431 00:23:55,210 --> 00:23:55,529 ¿No se ve? 432 00:23:55,529 --> 00:23:56,369 no se lee 433 00:23:56,369 --> 00:23:59,589 o sea, si empiezan 434 00:23:59,589 --> 00:24:01,069 de sábado a viernes 435 00:24:01,069 --> 00:24:03,190 en vez de lunes va a terminar 436 00:24:03,190 --> 00:24:05,630 no se lee menos uno menos cuatro 437 00:24:05,630 --> 00:24:06,269 no 438 00:24:06,269 --> 00:24:09,589 es posible que en algunos 439 00:24:09,589 --> 00:24:11,690 otros lenguajes hagan cosas raras 440 00:24:11,690 --> 00:24:13,130 pero en principio no, ¿vale? 441 00:24:13,509 --> 00:24:15,390 estas son, las celdas tienen su numerito 442 00:24:15,390 --> 00:24:17,390 0, 1, 2, 3, 4 y esas son 443 00:24:17,390 --> 00:24:19,230 si llegas a 6 explotas 444 00:24:19,230 --> 00:24:20,829 si llegas a menos uno explotas 445 00:24:20,829 --> 00:24:22,509 si llegas a 30 veces explotas también 446 00:24:22,509 --> 00:24:24,730 ¿sí? ¿dudas? 447 00:24:25,529 --> 00:24:32,009 No, porque es quitado el domingo. 448 00:24:32,349 --> 00:24:32,869 ¡Cuidado! 449 00:24:37,529 --> 00:24:40,269 Hay una flecha muy grande roja 450 00:24:40,269 --> 00:24:42,170 que te hace... ¡Cuidado! 451 00:24:47,930 --> 00:24:49,450 Si hubiese el domingo, 452 00:24:49,950 --> 00:24:51,869 el día 6 es el mismo 453 00:24:51,869 --> 00:24:55,069 programa que antes, 454 00:24:55,069 --> 00:24:57,009 que ponía día 6, pero lo que he hecho 455 00:24:57,009 --> 00:24:58,089 es quitarle el domingo. 456 00:24:58,569 --> 00:25:00,130 Y entonces, claro, ya el domingo no existe, 457 00:25:00,269 --> 00:25:00,930 desexplora. 458 00:25:02,349 --> 00:25:04,289 ¿Ya es? ¿Dudas? 459 00:25:06,029 --> 00:25:06,750 Vale. 460 00:25:08,250 --> 00:25:08,869 ¿Qué es esto? 461 00:25:10,569 --> 00:25:10,990 Vale. 462 00:25:12,190 --> 00:25:14,009 Cosillas que tienen los array. 463 00:25:14,450 --> 00:25:16,170 Length. Cuidado. 464 00:25:16,430 --> 00:25:18,029 Nosotros hemos ya visto un length. 465 00:25:18,849 --> 00:25:20,210 El length que hemos visto 466 00:25:20,210 --> 00:25:22,349 nosotros es una función 467 00:25:22,349 --> 00:25:23,829 de la clase string. 468 00:25:24,470 --> 00:25:25,930 Y por lo tanto se escribe length 469 00:25:25,930 --> 00:25:26,849 con paréntesis. 470 00:25:28,170 --> 00:25:30,109 Este length no es 471 00:25:30,109 --> 00:25:32,470 una función, es un 472 00:25:32,470 --> 00:25:34,069 atributo 473 00:25:34,069 --> 00:25:36,210 de esta clase, en un cierto sentido. 474 00:25:36,369 --> 00:25:37,970 Es una variable. Y se escribe 475 00:25:37,970 --> 00:25:38,630 sin paréntesis. 476 00:25:39,670 --> 00:25:42,130 ¿Vale? Eclipse os lo 477 00:25:42,130 --> 00:25:44,049 dice. Tú lo escribes con 478 00:25:44,049 --> 00:25:45,809 paréntesis y te dice, no, no lo tengo. 479 00:25:45,990 --> 00:25:48,130 Pero si es sin paréntesis en una string, te dice, 480 00:25:48,210 --> 00:25:50,089 no, esto no existe. Pero te tienes que 481 00:25:50,089 --> 00:25:51,730 recordar que una con paréntesis es una 482 00:25:51,730 --> 00:25:53,630 sin, donde está el error. 483 00:25:53,849 --> 00:25:55,630 Luego Eclipse os dará una mano 484 00:25:55,630 --> 00:25:57,950 en marcar que lo habéis escrito mal. 485 00:25:58,309 --> 00:25:59,910 ¿Vale? Entonces, si yo tengo 486 00:25:59,910 --> 00:26:03,930 char array esté aquí, array es igual a new char bla bla bla 487 00:26:03,930 --> 00:26:09,730 for int i es igual a cero i menor que array punto length i más más 488 00:26:09,730 --> 00:26:14,690 system punto auto punto println array de i que haces esta maravilla de la naturaleza 489 00:26:14,690 --> 00:26:17,589 que utilizareis cincuenta mil veces a partir de hoy 490 00:26:17,589 --> 00:26:32,789 va a imprimir 491 00:26:32,789 --> 00:26:35,450 el contenido de las celdas 492 00:26:35,450 --> 00:26:37,089 desde la celda 0 493 00:26:37,089 --> 00:26:39,170 hasta la celda 9 494 00:26:39,170 --> 00:26:41,609 de este array 495 00:26:41,609 --> 00:26:44,089 no de 0 al 9 496 00:26:44,089 --> 00:26:46,950 va a imprimir el contenido de la celda 497 00:26:46,950 --> 00:26:49,630 ahora, como yo no he puesto nada en esta celda 498 00:26:49,630 --> 00:26:51,210 ¿qué hay cuando 499 00:26:51,210 --> 00:26:52,710 que pilla un int 500 00:26:52,710 --> 00:26:54,630 si yo no le pongo nada 501 00:26:54,630 --> 00:26:56,049 0 502 00:26:56,049 --> 00:27:00,410 int si no lo inicializo 503 00:27:00,410 --> 00:27:01,410 vale 0 504 00:27:01,410 --> 00:27:03,390 por lo tanto esto me escriberá 505 00:27:03,390 --> 00:27:04,730 10 ceros 506 00:27:04,730 --> 00:27:07,549 0 0 0 0 0 0 0 507 00:27:07,549 --> 00:27:08,089 10 veces 508 00:27:08,089 --> 00:27:09,589 ¿si? 509 00:27:11,450 --> 00:27:11,789 ¿yes? 510 00:27:12,809 --> 00:27:14,049 esto es 511 00:27:14,049 --> 00:27:16,710 la base 512 00:27:16,710 --> 00:27:18,490 la fórmula básica 513 00:27:18,490 --> 00:27:20,690 para recorrer un array 514 00:27:20,690 --> 00:27:24,089 Mi array tiene no sé cuántas posiciones 515 00:27:24,089 --> 00:27:25,829 Empiezo desde la primera 516 00:27:25,829 --> 00:27:27,190 Y hasta las últimas 517 00:27:27,190 --> 00:27:29,069 Lo que hago es acceder a la array 518 00:27:29,069 --> 00:27:30,589 Y a ver si hay allí dentro 519 00:27:30,589 --> 00:27:31,589 Escribirlo en pantalla 520 00:27:31,589 --> 00:27:32,789 Pues esta cosa 521 00:27:32,789 --> 00:27:34,390 ¿Se entiende? 522 00:27:37,650 --> 00:27:39,009 Voy a correr un array 523 00:27:39,009 --> 00:27:40,210 Vale, misma cosa 524 00:27:40,210 --> 00:27:42,369 Entonces, si yo tengo mi días 525 00:27:42,369 --> 00:27:44,430 Lunes, domingo, miércoles, jueves, viernes 526 00:27:44,430 --> 00:27:46,069 Fijaos, aquí perdí otro día 527 00:27:46,069 --> 00:27:47,690 Porque cada vez que hago este ejercicio 528 00:27:47,690 --> 00:27:48,529 Perdo un día más 529 00:27:48,529 --> 00:28:13,970 Y luego le digo, int x es igual a 0, que no sé para qué sirve, for int y es igual a 0 y menor de días punto length, fijaos, sin parentesitas, y más más, y luego digo, x es igual a y más 1, y luego digo, día, lo que haya en x es, y lo que haya en la casilla y de este array de aquí, 530 00:28:13,970 --> 00:28:15,589 lo que estoy escribiendo es 531 00:28:15,589 --> 00:28:18,170 día 1 es lunes, día 2 es martes 532 00:28:18,170 --> 00:28:20,089 día 3 es miércoles, lo veis 533 00:28:20,089 --> 00:28:21,109 ¿vale? 534 00:28:21,529 --> 00:28:23,829 esta cosa aquí del x me sirve solo porque 535 00:28:23,829 --> 00:28:26,450 si no sería feo que pondría día 0 es lunes 536 00:28:26,450 --> 00:28:28,170 día 1 es martes 537 00:28:28,170 --> 00:28:29,230 ¿vale? 538 00:28:29,730 --> 00:28:31,869 entonces como los seres humanos no estamos 539 00:28:31,869 --> 00:28:33,869 acostumbrados a contar desde 0 540 00:28:33,869 --> 00:28:35,190 solemos contar desde 1 541 00:28:35,190 --> 00:28:37,730 pues entonces le sumo 1 542 00:28:37,730 --> 00:28:39,890 habría podido en vez de utilizar x poner aquí 543 00:28:39,890 --> 00:28:41,730 entre paréntesis y más 1 y habría 544 00:28:41,730 --> 00:28:42,289 hecho lo mismo 545 00:28:42,289 --> 00:28:44,349 ¿sí? 546 00:28:45,450 --> 00:28:46,009 dudas 547 00:28:46,009 --> 00:28:50,730 con esta cosa aquí estoy recorriendo 548 00:28:50,730 --> 00:28:52,630 este array, cuando esto 549 00:28:52,630 --> 00:28:54,569 vale días de cero, escribiré lunes 550 00:28:54,569 --> 00:28:56,289 cuando este es día de uno, martes 551 00:28:56,289 --> 00:28:58,029 cuando este es día de dos, miércoles 552 00:28:58,029 --> 00:29:00,809 preguntas 553 00:29:00,809 --> 00:29:02,950 fácil esto 554 00:29:02,950 --> 00:29:07,660 entonces añadamos 555 00:29:07,660 --> 00:29:09,700 un nuevo for, que os encanta 556 00:29:09,700 --> 00:29:11,079 añadir nuevos for 557 00:29:11,079 --> 00:29:12,059 ¿ok? 558 00:29:12,599 --> 00:29:14,619 la estructura que se llama for each 559 00:29:14,619 --> 00:29:19,599 La estructura forEach está pensada, no existía antes, ¿vale? 560 00:29:20,079 --> 00:29:24,259 Se ha creado para las colecciones. 561 00:29:24,720 --> 00:29:27,180 Funciona tanto en las colecciones que veremos más adelante, 562 00:29:27,680 --> 00:29:31,599 pero en particular funciona también con los arrays también, ¿vale? 563 00:29:32,240 --> 00:29:39,599 El forEach me sirve cuando yo quiero hacer algo por cada elemento de un array. 564 00:29:40,240 --> 00:29:42,200 ForEach, element of the array. 565 00:29:43,200 --> 00:29:44,519 ¿Cómo funciona? 566 00:29:44,619 --> 00:29:46,180 esta cosa de aquí 567 00:29:46,180 --> 00:29:48,019 for 568 00:29:48,019 --> 00:29:49,700 abierta paréntesis 569 00:29:49,700 --> 00:29:52,319 int y dos puntos nums 570 00:29:52,319 --> 00:29:53,920 donde nums es un array 571 00:29:53,920 --> 00:29:56,180 escribe y 572 00:29:56,180 --> 00:29:58,920 lo que estoy haciendo 573 00:29:58,920 --> 00:30:00,640 es escribir este 574 00:30:00,640 --> 00:30:02,839 este array en pantalla, todo en una línea 575 00:30:02,839 --> 00:30:04,720 si os fijáis esto es sin leer 576 00:30:04,720 --> 00:30:05,779 ¿vale? 577 00:30:06,619 --> 00:30:08,440 lo que hace esta estructura de aquí 578 00:30:08,440 --> 00:30:10,660 es decirme en el primer ciclo 579 00:30:10,660 --> 00:30:12,619 y vale lo que 580 00:30:12,619 --> 00:30:14,579 está en la primera celda de nums 581 00:30:14,579 --> 00:30:20,200 En el segundo ciclo, Y vale lo que hay en la segunda celda de Núñez. 582 00:30:20,519 --> 00:30:22,279 En el tercer ciclo, la tercera. 583 00:30:22,579 --> 00:30:24,119 En el cuarto ciclo, la cuarta. 584 00:30:26,339 --> 00:30:34,680 Esto es útil cuando quiero recorrer un array y hacer algo, lo mismo probablemente, por cada una de las celdas. 585 00:30:36,200 --> 00:30:38,940 Esto es obligatorio. 586 00:30:39,380 --> 00:30:42,000 O sea, no lo puedes hacer con el Ford de toda la vida. 587 00:30:42,599 --> 00:30:43,079 Sí, claro. 588 00:30:43,940 --> 00:30:44,859 Son iguales. 589 00:30:44,859 --> 00:30:53,859 Puedo hacer todo lo que hago con un FOR para hacerlo con un FOREACH y al revés, medio, con un poco de trabajo. 590 00:30:53,859 --> 00:31:11,299 Fijaos que aquí, por favor chicos, oiga, hola, sigues hablando, que no tengo en un FOREACH, que sí tengo en un FOREACH. 591 00:31:11,299 --> 00:31:24,099 más. ¿Y qué es? Más que esto, una variable de modificación. Es que aquí, en este for 592 00:31:24,099 --> 00:31:33,500 de aquí, yo tengo i que me sirve como índice. Me dice en qué momento del ciclo estoy. Si 593 00:31:33,500 --> 00:31:39,019 lo uso para un array, me dice en qué celda estoy trabajando en este momento. Estoy trabajando 594 00:31:39,019 --> 00:31:41,579 a la celda 3. Aquí esto no está. 595 00:31:42,559 --> 00:31:43,720 Yo he perdido el índice. 596 00:31:44,339 --> 00:31:45,660 Yo sé que voy a recorrer 597 00:31:45,660 --> 00:31:47,220 todas las celdas de la array 598 00:31:47,220 --> 00:31:49,720 pero en un determinado momento, en un determinado ciclo 599 00:31:49,720 --> 00:31:51,599 no sé si estoy en la celda 1 600 00:31:51,599 --> 00:31:53,019 o en la celda 2 o en la celda 7. 601 00:31:53,460 --> 00:31:55,440 Sé que he pillado el valor de una de estas celdas 602 00:31:55,440 --> 00:31:56,740 y estoy haciendo algo con ella. 603 00:31:57,460 --> 00:31:59,740 Pero por ejemplo, si mi objetivo 604 00:31:59,740 --> 00:32:01,440 sería, yo tengo una array grande 605 00:32:01,440 --> 00:32:03,420 te doy un valor 606 00:32:03,420 --> 00:32:05,480 búscame en qué celda aparece 607 00:32:05,480 --> 00:32:07,660 este valor, hacerlo con 608 00:32:07,660 --> 00:32:39,210 el forEach? No lo sé. Porque no tengo control sobre en qué celda estoy en un determinado momento. Se puede hacer, pero con un contador y más más, etc. Pero hay veces que tener control sobre la celda en que estáis es útil y por lo tanto uso este for de aquí y otras veces en vez de que no me interesa en qué celda estoy, me interesa ir en todas las celdas. Por lo tanto, este es más cómodo. 609 00:32:39,230 --> 00:32:52,299 O veremos, por ejemplo. Escribe el contenido de un Array. Existe Arrays.toString. Fijaos 610 00:32:52,299 --> 00:33:04,099 que este de aquí es mayúscula. ¿Qué será este Arrays? Es una clase. Es parecido a... 611 00:33:04,099 --> 00:33:14,299 ¿Qué otras cosas hemos visto que funcionan así? Math.rando. El equals no. 612 00:33:14,299 --> 00:33:18,339 Y el equals antes tiene un objeto, no tiene una clase. 613 00:33:20,299 --> 00:33:20,980 Cosa distinta. 614 00:33:22,119 --> 00:33:24,180 Y tú no haces string.equals. 615 00:33:25,279 --> 00:33:28,519 Tú haces una variable, punto equals, otra variable. 616 00:33:29,539 --> 00:33:32,440 Entonces, mientras aquí no lo estás llamando sobre una variable. 617 00:33:32,579 --> 00:33:35,299 Si os fijáis aquí no hay ninguna variable que se llame arrays. 618 00:33:35,900 --> 00:33:37,859 Esta es una clase. 619 00:33:38,380 --> 00:33:39,119 Es como math. 620 00:33:39,519 --> 00:33:41,160 Math.random sigue así. 621 00:33:41,160 --> 00:33:44,279 Math.py que vimos alguna vez, pues misma cosa. 622 00:33:44,299 --> 00:33:46,519 Entonces hay esta clase 623 00:33:46,519 --> 00:33:47,720 Que es una clase de comodines 624 00:33:47,720 --> 00:33:49,480 De cosas útiles para arrays 625 00:33:49,480 --> 00:33:51,880 Que tiene el método toString 626 00:33:51,880 --> 00:33:54,220 Que le paso un array 627 00:33:54,220 --> 00:33:56,099 Y él me escribe 628 00:33:56,099 --> 00:33:57,960 El contenido de cada uno de ellos 629 00:33:57,960 --> 00:33:59,900 Esto 630 00:33:59,900 --> 00:34:02,460 Si lo recordáis bien, si no os lo hacéis vosotros 631 00:34:02,460 --> 00:34:04,279 Esto hace lo mismo que esto más o menos 632 00:34:04,279 --> 00:34:06,559 Puede ser útil a veces para ver 633 00:34:06,559 --> 00:34:08,500 Si he hecho la cosa bien o imprimir 634 00:34:08,500 --> 00:34:09,940 Rápidamente un array 635 00:34:09,940 --> 00:34:12,099 En vez de tener que hacer 636 00:34:12,099 --> 00:34:14,559 todo un for, pues escribo esto y lo escribo. 637 00:34:17,400 --> 00:34:18,280 Copia de un array. 638 00:34:22,039 --> 00:34:23,000 Nos paramos aquí. 639 00:34:23,300 --> 00:34:25,099 Mañana vemos la copia de un array 640 00:34:25,099 --> 00:34:27,179 y luego los arrays multidimensionales 641 00:34:27,179 --> 00:34:28,960 pues posiblemente los dejamos después 642 00:34:28,960 --> 00:34:29,400 de 643 00:34:29,400 --> 00:34:32,820 del examen, ¿vale? 644 00:34:34,940 --> 00:34:36,920 Copia de un array. Prefiero antes 645 00:34:36,920 --> 00:34:38,840 hacer algunos ejercicios antes de 646 00:34:38,840 --> 00:34:40,179 meternos en una copia de array. 647 00:34:40,679 --> 00:34:40,940 ¿Vale? 648 00:34:42,059 --> 00:34:46,880 Vamos a hacer algún ejercitito. 649 00:34:46,900 --> 00:35:05,670 Última semana, de 24 a 28 650 00:35:05,670 --> 00:35:06,869 No sé exactamente qué es 651 00:35:06,869 --> 00:35:08,369 Estamos todos 652 00:35:08,369 --> 00:35:15,809 No, no, vais a tener todos 653 00:35:15,809 --> 00:35:18,889 En esta semana se suspenden las clases 654 00:35:18,889 --> 00:35:21,090 para que hagáis los exámenes. 655 00:35:21,730 --> 00:35:23,090 Entonces vais a tener todos los exámenes ahí. 656 00:35:24,789 --> 00:35:28,389 Vale, vamos a crear un nuevo proyectito. 657 00:35:54,519 --> 00:35:57,579 Vale, lo llamamos Arrays. 658 00:35:58,840 --> 00:35:59,900 Y empezamos. 659 00:36:06,349 --> 00:36:10,010 Aquí en Arrays creamos un package. 660 00:36:10,010 --> 00:36:11,510 ejemplos 661 00:36:11,510 --> 00:36:14,389 y empezamos 662 00:36:14,389 --> 00:36:25,519 vale, entonces 663 00:36:25,519 --> 00:36:27,579 vamos a 664 00:36:27,579 --> 00:36:30,840 crear un array de enteros 665 00:36:30,840 --> 00:36:32,460 vale, para empezar a jugar 666 00:36:32,460 --> 00:36:33,380 un poquito con ellos 667 00:36:33,380 --> 00:36:35,940 int array 668 00:36:35,940 --> 00:36:38,420 que queréis que sean 669 00:36:38,420 --> 00:36:46,139 es igual 670 00:36:46,139 --> 00:36:47,900 a new 671 00:36:47,900 --> 00:36:49,340 inter 672 00:36:49,340 --> 00:36:52,019 y aquí tengo que poner 673 00:36:52,019 --> 00:36:54,360 cuántas edades 674 00:36:54,360 --> 00:36:56,000 puede contener esta cosa 675 00:36:56,000 --> 00:36:58,139 ¿vale? entonces ¿qué ponemos? 676 00:36:58,219 --> 00:36:58,519 5 677 00:36:58,519 --> 00:37:01,619 este de aquí me ha creado 678 00:37:01,619 --> 00:37:04,340 un array de 5 679 00:37:04,340 --> 00:37:06,300 posiciones 680 00:37:06,300 --> 00:37:08,199 y yo puedo ahora 681 00:37:08,199 --> 00:37:17,980 acceder a estas posiciones así. Edades de 0 es igual a 10. Edades, ¿cuánto hablaréis? 682 00:37:17,980 --> 00:37:38,469 No os calláis nunca. 20. Edades, ahora os cambio. Por ejemplo, puedo hacer cosas como 683 00:37:38,469 --> 00:37:45,710 O edades de 3 es igual a edades de 2 más 10. 684 00:37:49,780 --> 00:37:59,659 O la edades de 4 es igual a 10. 685 00:38:01,400 --> 00:38:01,719 ¿Vale? 686 00:38:02,179 --> 00:38:03,719 Con esto he rellenado mi array. 687 00:38:04,880 --> 00:38:11,400 Fijaos que tengo un solo nombre y luego uso estos para poder cambiar, que son numéricos. 688 00:38:12,119 --> 00:38:12,199 ¿Vale? 689 00:38:12,440 --> 00:38:14,900 Pero el nombre, la variable es una sola. 690 00:38:14,900 --> 00:38:22,099 Tengo sólo el array de enteros que es edades. Ahora, ¿cómo lo escribo en pantalla esto? Pues 691 00:38:22,099 --> 00:38:43,539 si hizo Arrays.Dostring de edades. Ya está. Yo lo lanzo, aquí lo tengo. Este es mi array. Vamos a 692 00:38:43,539 --> 00:38:49,719 hacer lo mismo que hace él, o parecido, pero vamos a hacerlo nosotros. Vamos a imprimir el contenido 693 00:38:49,719 --> 00:39:01,920 de esto. Entonces, for, si tenéis dudas me paráis. Y es igual a cero y menor que cinco y más más, 694 00:39:01,920 --> 00:39:23,420 piso, ¿qué pongo? Edades. Entonces, como esto la primera vez va a ser cero, uno, dos, tres, 695 00:39:23,420 --> 00:39:33,300 4 pues la primera vez me pedirá edades de cero la segunda edad es de 1 entonces hace esto veis 696 00:39:54,780 --> 00:39:57,300 poniendo mayúsculas minúsculas 697 00:39:57,300 --> 00:40:00,300 lo estarás haciendo a la hora. 698 00:40:00,300 --> 00:40:03,300 A raíz. 699 00:40:03,300 --> 00:40:08,130 Si no lo pones bien te lo... 700 00:40:08,130 --> 00:40:09,130 Lo han cortado. 701 00:40:09,130 --> 00:40:12,130 Quita tu string, pon el punto y pon el string. 702 00:40:12,130 --> 00:40:14,130 ¿Tiro tu string con el punto? 703 00:40:14,130 --> 00:40:15,130 Sí. 704 00:40:15,130 --> 00:40:18,130 Y menos que 5 puedes también poner... 705 00:40:18,130 --> 00:40:20,130 Ahora llevo. 706 00:40:20,130 --> 00:40:21,130 Ahora llevo. 707 00:40:21,130 --> 00:40:22,130 Ah. 708 00:40:22,130 --> 00:40:24,130 Tendré que salir. 709 00:40:24,130 --> 00:40:26,130 Vale. 710 00:40:26,130 --> 00:40:28,130 Esto funcionaría, ¿vale? 711 00:40:28,130 --> 00:40:30,949 Pero es feo, lo que dice nuestro compañero. 712 00:40:31,369 --> 00:40:35,909 Poner 5 aquí quiere decir que si ahora yo pongo 6 aquí 713 00:40:35,909 --> 00:40:40,130 y le pongo una nueva edad de 5 714 00:40:40,130 --> 00:40:43,210 y le pongo 110, 715 00:40:44,389 --> 00:40:47,690 pues esto sigue funcionando, pero el mío no. 716 00:40:49,510 --> 00:40:51,170 Esto de aquí sigue poniendo 110, 717 00:40:51,170 --> 00:40:55,409 pero yo 110 no lo he puesto, porque me he limitado a 5. 718 00:40:55,409 --> 00:40:58,889 Entonces usar estos valores así 719 00:40:58,889 --> 00:41:01,230 Directamente con el literal 720 00:41:01,230 --> 00:41:05,030 Normalmente es un pillarse los dedos en el futuro 721 00:41:05,030 --> 00:41:05,989 ¿Vale? 722 00:41:06,550 --> 00:41:08,969 En vez de decir un número concreto 723 00:41:08,969 --> 00:41:10,329 Le tengo que decir 724 00:41:10,329 --> 00:41:13,150 Oye, mira, yo no sé el array cuántas posiciones hay 725 00:41:13,150 --> 00:41:16,210 Pero me vas desde la cero hasta la posición final 726 00:41:16,210 --> 00:41:20,449 Y esto se hace con edades.length 727 00:41:20,449 --> 00:41:23,710 fijaos que es azulito 728 00:41:23,710 --> 00:41:25,449 y que no tiene paréntesis 729 00:41:25,449 --> 00:41:30,099 dudas 730 00:41:30,099 --> 00:41:36,659 ahora 731 00:41:36,659 --> 00:41:39,260 me funciona 732 00:41:39,260 --> 00:41:41,840 veis que le doy también la sexta posición 733 00:41:41,840 --> 00:41:45,239 le quito el 734 00:41:45,239 --> 00:41:45,940 el n 735 00:41:45,940 --> 00:41:49,480 le pongo un espacio 736 00:41:49,480 --> 00:41:52,960 y me lo escribe 737 00:41:52,960 --> 00:41:55,099 parecido a esto 738 00:41:55,099 --> 00:42:02,199 vale, otra forma de hacerlo 739 00:42:02,199 --> 00:42:04,360 por 740 00:42:04,360 --> 00:42:06,800 int k 741 00:42:06,800 --> 00:42:09,059 es igual, no, int k 742 00:42:09,059 --> 00:42:10,659 dos puntos edades 743 00:42:10,659 --> 00:42:14,820 si, so 744 00:42:14,820 --> 00:42:21,469 k, más 745 00:42:21,469 --> 00:42:22,730 un espacio 746 00:42:22,730 --> 00:42:25,730 veis que esto es lo mismo, que hace 747 00:42:25,730 --> 00:42:26,230 lo mismo 748 00:42:26,230 --> 00:42:29,769 pero en este caso, que tengo que ir 749 00:42:29,769 --> 00:42:30,849 en todas las 750 00:42:30,849 --> 00:42:33,630 unidades, todas las 751 00:42:33,630 --> 00:42:35,469 celdas, pues esto 752 00:42:35,469 --> 00:42:37,869 queda mucho más bonito y leíble 753 00:42:37,869 --> 00:42:39,309 con respecto a esta cosa aquí 754 00:42:39,309 --> 00:43:00,449 Ahora, pero esto me permitiría poner, por ejemplo, 755 00:43:00,449 --> 00:43:19,880 así, una cosa de ese estilo, la edad 0 es 10, la edad 1 es 20, la edad 2 es... En esto no tengo una variable 756 00:43:19,880 --> 00:43:22,099 en el for que me permita 757 00:43:22,099 --> 00:43:23,460 decir en qué celda estoy. 758 00:43:24,239 --> 00:43:25,300 ¿Me la puedo crear? Sí. 759 00:43:25,699 --> 00:43:28,260 Pero no la tengo. ¿Vale? No tengo acceso. 760 00:43:28,739 --> 00:43:30,099 Sé que accederé a todas las 761 00:43:30,099 --> 00:43:32,199 celdas, pero no sé en qué celda 762 00:43:32,199 --> 00:43:34,000 estoy en un determinado momento para poder escribir. 763 00:43:34,079 --> 00:43:35,840 Oye, estoy en la celda 3, este escribo. 764 00:43:36,739 --> 00:43:38,119 ¿Me entiendes? Voy a hacer 765 00:43:38,119 --> 00:43:39,780 un int 766 00:43:39,780 --> 00:43:41,840 celda, un numcelda 767 00:43:41,840 --> 00:43:44,239 es igual 768 00:43:44,239 --> 00:43:46,079 a cero. Y luego 769 00:43:46,079 --> 00:43:48,239 aquí poner un numcelda más más. 770 00:43:48,239 --> 00:43:55,829 Pero si ya tengo que hacer esta cosa extra 771 00:43:55,829 --> 00:43:57,630 Pues entonces voy a hacerlo así 772 00:43:57,630 --> 00:44:01,400 Tú das 773 00:44:01,400 --> 00:44:08,699 Por ahí, Estefano, lo utilizas 774 00:44:08,699 --> 00:44:10,139 Acá para almacenar datos 775 00:44:10,139 --> 00:44:11,079 Simplemente 776 00:44:11,079 --> 00:44:13,820 Lo que ponga aquí es 777 00:44:13,820 --> 00:44:15,679 Delta actual 778 00:44:15,679 --> 00:44:20,389 Delta actual 779 00:44:20,389 --> 00:44:21,789 Vale, o sea que no 780 00:44:21,789 --> 00:44:26,099 El índice va en automático 781 00:44:26,099 --> 00:44:27,239 Va en automático 782 00:44:27,239 --> 00:44:29,699 En vez de basarse sobre el índice, él por automático 783 00:44:29,699 --> 00:44:32,059 dice que en cada ciclo actualiza 784 00:44:32,059 --> 00:44:34,280 la celda actual con el valor de la siguiente 785 00:44:34,280 --> 00:44:34,639 celda 786 00:44:34,639 --> 00:44:39,980 las 787 00:44:39,980 --> 00:44:43,019 preguntas 788 00:44:43,019 --> 00:44:46,199 la referencia 789 00:44:46,199 --> 00:44:47,960 entonces la trae que es solo una 790 00:44:47,960 --> 00:44:50,320 no que cada posición tenga una 791 00:44:50,320 --> 00:44:51,260 referencia propia 792 00:44:51,260 --> 00:44:54,219 no, la referencia es una, lo que cambia 793 00:44:54,219 --> 00:44:56,659 es que cada celda luego tendrá un índice 794 00:44:56,659 --> 00:44:58,480 0, 1, 2, 3, 4 795 00:44:58,480 --> 00:45:00,219 entonces tú vas 796 00:45:00,219 --> 00:45:02,099 al objeto y luego dentro del objeto dice 797 00:45:02,099 --> 00:45:03,639 posición dentro del objeto 798 00:45:03,960 --> 00:45:06,719 La raíz tiene una sola referencia. 799 00:45:07,320 --> 00:45:08,940 Esa que sale en Ares. 800 00:45:12,260 --> 00:45:13,199 ¿Van dudas? 801 00:45:14,559 --> 00:45:15,360 ¿Preguntas? 802 00:45:18,420 --> 00:45:19,760 Ejemplo 2. 803 00:45:30,610 --> 00:45:32,349 Hagamos parecido, 804 00:45:32,829 --> 00:45:34,750 pero en vez de ponerlo nosotros así, 805 00:45:34,969 --> 00:45:36,949 hagamos que nos lo dé el usuario. 806 00:45:37,710 --> 00:45:37,909 ¿Vale? 807 00:45:38,530 --> 00:45:39,630 Entonces, sí, so. 808 00:45:39,630 --> 00:45:44,670 escáner, escáner, escáner, es igual a newscanner 809 00:45:44,670 --> 00:45:51,119 de system.int, vale, y le digo 810 00:45:51,119 --> 00:46:00,159 CISO, ¿cuántos valores 811 00:46:00,159 --> 00:46:03,019 quieres insertar? 812 00:46:06,130 --> 00:46:10,269 int, num, es igual a 813 00:46:10,269 --> 00:46:18,050 scan.nexy, vale, con esta cosa aquí 814 00:46:18,050 --> 00:46:22,090 estoy preguntando al usuario, fijaos que yo no lo sé 815 00:46:22,090 --> 00:46:24,170 cuántos son. Pero ahora estoy preguntando 816 00:46:24,170 --> 00:46:26,349 al usuario cuántos valores quiere insertar. 817 00:46:26,429 --> 00:46:27,969 Si me da 3, pues leeré 818 00:46:27,969 --> 00:46:30,010 13 valores. Si me da 18, leeré 819 00:46:30,010 --> 00:46:30,750 18 valores. 820 00:46:32,429 --> 00:46:33,489 Por lo tanto, 821 00:46:34,510 --> 00:46:36,010 aquí tengo este 822 00:46:36,010 --> 00:46:36,349 número. 823 00:46:37,849 --> 00:46:40,030 Podríamos hacerlo con variables simples. 824 00:46:41,869 --> 00:46:44,190 Imaginaos que ahora yo quiera almacenar todos estos valores 825 00:46:44,190 --> 00:46:46,210 para luego hacer algo con estos valores. 826 00:46:46,349 --> 00:46:46,789 No sé qué. 827 00:46:48,190 --> 00:46:49,849 Con variables simples no podría 828 00:46:49,849 --> 00:46:51,130 hacerlo, porque puedo decir 829 00:46:51,130 --> 00:46:54,849 int n1 es igual a int n2 830 00:46:54,849 --> 00:46:57,210 ¿Cuántas de estas he neado? 831 00:46:57,429 --> 00:46:57,809 ¿Cien? 832 00:46:58,289 --> 00:47:00,190 Y si me dan mil valores 833 00:47:00,190 --> 00:47:02,670 ¿Se entiende el problema? 834 00:47:03,489 --> 00:47:03,630 Sí 835 00:47:03,630 --> 00:47:05,469 Pues entonces lo que hago es 836 00:47:05,469 --> 00:47:06,150 vale, muy bien 837 00:47:06,150 --> 00:47:06,849 int 838 00:47:06,849 --> 00:47:08,250 bdb 839 00:47:08,250 --> 00:47:08,969 valores 840 00:47:08,969 --> 00:47:12,190 es igual a new 841 00:47:12,190 --> 00:47:13,670 int 842 00:47:13,670 --> 00:47:15,090 en un 843 00:47:15,090 --> 00:47:18,309 ¡Oh! 844 00:47:19,750 --> 00:47:20,510 ¡Bum! 845 00:47:23,920 --> 00:47:31,219 Entonces, estamos hasta aquí. 846 00:47:31,300 --> 00:47:31,719 ¿Hasta aquí sí? 847 00:47:32,480 --> 00:47:35,039 Ahora, yo quiero leer cuántos números. 848 00:47:35,420 --> 00:47:35,960 No lo sé. 849 00:47:36,860 --> 00:47:38,500 Num números. Num valores. 850 00:47:39,219 --> 00:47:41,820 Si el usuario me pone 7, quiero leer 7 valores. 851 00:47:41,980 --> 00:47:43,260 Si el usuario me pone 35, 852 00:47:43,380 --> 00:47:44,619 quiero leer 35 valores. 853 00:47:45,139 --> 00:47:47,559 Ahora, lo que no puedo hacer es ponerme a hacer 854 00:47:47,559 --> 00:47:48,539 Internet 1, 855 00:47:49,440 --> 00:47:50,480 Internet 2, 856 00:47:51,179 --> 00:47:52,179 Internet 3, 857 00:47:53,760 --> 00:47:55,340 porque no sé cuántas N 858 00:47:55,340 --> 00:47:57,400 tengo que hacer. Si él me da 7 859 00:47:57,400 --> 00:47:59,500 tendré que hacer hasta N7. Si él me da 100 860 00:47:59,500 --> 00:48:00,920 tendré que hacer hasta N100. 861 00:48:01,300 --> 00:48:03,219 Pero es que no lo sé. Ahora a nivel de 862 00:48:03,219 --> 00:48:04,860 programación, no lo sé. 863 00:48:05,199 --> 00:48:07,599 Entonces, ¿qué hago? Esta maravilla. 864 00:48:08,880 --> 00:48:09,760 ¿Qué me dice? 865 00:48:10,280 --> 00:48:11,320 Créame un array 866 00:48:11,320 --> 00:48:13,300 de valores. Vale, perfecto. 867 00:48:13,380 --> 00:48:14,920 ¿Y cuántas posiciones tiene? 868 00:48:15,360 --> 00:48:16,880 Pues tiene N1 posiciones. 869 00:48:17,719 --> 00:48:19,480 ¿Quién? El valor que te acaba de dar. 870 00:48:19,800 --> 00:48:21,300 ¿Te ha dado 7? Esto es 871 00:48:21,300 --> 00:48:23,260 un array de 7 posiciones. ¿Te ha dado 872 00:48:23,260 --> 00:48:25,400 35. Esto es un array de 35 873 00:48:25,400 --> 00:48:27,039 posiciones. Se ha dado 1000. 874 00:48:27,320 --> 00:48:28,679 Esto es un array de 1000 posiciones. 875 00:48:31,090 --> 00:48:33,190 ¿Sí? Perfecto. 876 00:48:34,070 --> 00:48:34,610 Y ahora 877 00:48:34,610 --> 00:48:37,130 voy a recorrerme el array 878 00:48:37,130 --> 00:48:38,750 y rellenarlo. 879 00:48:40,909 --> 00:48:41,510 For 880 00:48:41,510 --> 00:48:44,570 int i es igual a 0 881 00:48:44,570 --> 00:48:46,909 i menor que valores 882 00:48:46,909 --> 00:48:48,550 punto length 883 00:48:48,550 --> 00:48:50,150 i más más 884 00:48:50,150 --> 00:48:52,929 créame una variable 885 00:48:52,929 --> 00:48:54,369 que va desde 0 886 00:48:54,369 --> 00:49:18,719 hasta NUM-1. Y me dice que CISO, dame el valor, el valor en posición así, y luego haré que dentro 887 00:49:18,719 --> 00:49:20,880 de valores 888 00:49:20,880 --> 00:49:24,909 de i 889 00:49:24,909 --> 00:49:26,929 voy a poner que 890 00:49:26,929 --> 00:49:33,869 dentro de valor de i 891 00:49:33,869 --> 00:49:34,949 voy a poner que 892 00:49:34,949 --> 00:49:42,579 exacto, scan.nexin 893 00:49:42,579 --> 00:49:47,070 como este es un for 894 00:49:47,070 --> 00:49:48,789 que por cada celda 895 00:49:48,789 --> 00:49:49,929 me repitiera esto 896 00:49:49,929 --> 00:49:52,329 lo que te está diciendo por cada celda es 897 00:49:52,329 --> 00:49:54,309 dame el valor en la posición ese de allí 898 00:49:54,309 --> 00:49:56,550 y te leo un valor y lo almacenará 899 00:49:56,550 --> 00:49:57,909 en esa posición 900 00:49:57,909 --> 00:50:00,250 entonces cuando i valdrá 0 901 00:50:00,250 --> 00:50:02,230 te dirá dame el valor en posición 0 902 00:50:02,230 --> 00:50:04,510 Y lo guardará en valores de 0 903 00:50:04,510 --> 00:50:05,929 Luego pasará a 1 904 00:50:05,929 --> 00:50:08,090 Y te dirá, dame el valor en posición 1 905 00:50:08,090 --> 00:50:10,349 Y te lo guardará en valores de 1 906 00:50:10,349 --> 00:50:11,969 Y así, así, así, así 907 00:50:11,969 --> 00:50:13,670 Hasta el numerito que tú me has dado 908 00:50:13,670 --> 00:50:15,190 ¿Ok? 909 00:50:16,230 --> 00:50:18,010 Cuando acabo esta cosa aquí 910 00:50:18,010 --> 00:50:19,210 Si hizo 911 00:50:19,210 --> 00:50:22,170 Arraiz.doString 912 00:50:22,170 --> 00:50:23,989 De 913 00:50:23,989 --> 00:50:25,250 Esta cosa aquí 914 00:50:25,250 --> 00:50:29,519 Valores, para ver que 915 00:50:29,519 --> 00:50:31,639 Efectivamente ha almacenado todos los numeritos 916 00:50:31,639 --> 00:50:32,079 Que he puesto 917 00:50:32,079 --> 00:50:33,880 vamos a verlo 918 00:50:33,880 --> 00:50:34,539 like 919 00:50:34,539 --> 00:50:37,579 ¿cuántos valores quiere aceptar? 920 00:50:37,860 --> 00:50:38,340 7 921 00:50:38,340 --> 00:50:40,880 también puedo hacer 1 922 00:50:40,880 --> 00:50:44,219 1, 2, 3, 4, 5, 6 923 00:50:44,219 --> 00:50:45,119 y 7 924 00:50:45,119 --> 00:50:47,840 y veis que ahora tengo mi array 925 00:50:47,840 --> 00:50:49,719 con dentro los valores que le he pasado 926 00:50:49,719 --> 00:50:53,699 al programar 927 00:50:53,699 --> 00:50:55,579 yo no tengo ni idea 928 00:50:55,579 --> 00:50:57,519 de cuántos valores me pregunta 929 00:50:57,519 --> 00:51:00,039 ni de cuáles son los valores que me va a poner 930 00:51:00,039 --> 00:51:02,900 pero luego funciona 931 00:51:02,900 --> 00:51:06,159 yo le digo, ahora quiero darte solo 3 932 00:51:06,159 --> 00:51:07,739 que son 11 933 00:51:07,739 --> 00:51:09,820 menos 65 934 00:51:09,820 --> 00:51:11,360 que es 46 935 00:51:11,360 --> 00:51:13,840 y ahora tengo mi array con dentro 11 936 00:51:13,840 --> 00:51:15,199 menos 65 es 46 937 00:51:15,199 --> 00:51:20,019 preguntas 938 00:51:20,019 --> 00:51:31,630 ejemplo 3 939 00:51:31,630 --> 00:51:49,119 entonces, leamos una 940 00:51:49,119 --> 00:51:51,260 palabra de teclado 941 00:51:51,260 --> 00:51:54,980 y la transformamos en un array de string 942 00:51:54,980 --> 00:51:57,280 donde en cada celda 943 00:51:57,280 --> 00:51:58,699 hay una letra 944 00:51:58,699 --> 00:51:59,780 de esa palabra 945 00:51:59,780 --> 00:52:06,480 centraos cuando lo he enunciado 946 00:52:06,480 --> 00:52:08,599 independientemente de lo que diga 947 00:52:08,599 --> 00:52:10,619 podría decir, hagamos una variable 948 00:52:10,619 --> 00:52:12,219 x con dentro 3, ¿cómo? 949 00:52:14,219 --> 00:52:15,500 ¿ves? centraos 950 00:52:15,500 --> 00:52:17,840 leemos una palabra 951 00:52:17,840 --> 00:52:20,679 scanner, scanner es igual 952 00:52:20,679 --> 00:52:21,940 a new scanner 953 00:52:21,940 --> 00:52:24,679 de system.in 954 00:52:24,679 --> 00:52:28,239 Sí, so 955 00:52:28,239 --> 00:52:32,980 ¿Cómo te llamas? 956 00:52:37,159 --> 00:52:38,920 String name 957 00:52:38,920 --> 00:52:41,820 es igual a scan.next 958 00:52:41,820 --> 00:52:45,820 Sí, y ahora empiezo 959 00:52:45,820 --> 00:52:48,500 y quiero transformar esta string 960 00:52:48,500 --> 00:52:51,559 en una array de char 961 00:52:51,559 --> 00:52:54,659 ¿Vale? Que tenga en cada celda 962 00:52:54,659 --> 00:53:05,659 una letra de la string que he mandado, ¿vale? Por ejemplo, char pdb o mi array, 963 00:53:05,659 --> 00:53:18,659 array, palabras, letras, es igual a new char, de esta cosa aquí, que ponga aquí dentro, name, 964 00:53:18,659 --> 00:53:28,239 pero así 965 00:53:28,239 --> 00:53:32,019 ¿os acordáis que tenía 966 00:53:32,019 --> 00:53:34,139 este metodito aquí 967 00:53:34,139 --> 00:53:36,059 que me decía cuantos caracteres 968 00:53:36,059 --> 00:53:38,039 tiene dentro un string 969 00:53:38,039 --> 00:53:39,639 pues ya está 970 00:53:39,639 --> 00:53:41,880 si yo he puesto 971 00:53:41,880 --> 00:53:43,679 hola, cuatro caracteres 972 00:53:43,679 --> 00:53:46,059 esto vale cuatro, me creará un array 973 00:53:46,059 --> 00:53:47,820 de cuatro caracteres 974 00:53:47,820 --> 00:53:55,619 Si yo he puesto dentro cocodrilo, pues me pondrá cuántas letras son cocodrilo, que no tengo yo. 975 00:53:55,619 --> 00:54:01,900 Entonces ya tengo mi array de char listo. 976 00:54:01,900 --> 00:54:09,900 Ahora lo que tengo que hacer es ir celda por celda y cargar dentro de la celda una letra. 977 00:54:09,900 --> 00:54:13,960 por int i es igual a cero 978 00:54:13,960 --> 00:54:18,280 i menor, menor, menor, menor, menor, menor 979 00:54:18,280 --> 00:54:22,880 que letras punto lengua. 980 00:54:23,019 --> 00:54:26,480 Fijaos esta vez sin el punto y sin la paréntesis. 981 00:54:27,199 --> 00:54:28,480 Que i más más 982 00:54:28,480 --> 00:54:34,179 lo que hago es que en letras 983 00:54:34,179 --> 00:54:38,380 de i voy a poner 984 00:54:38,380 --> 00:54:41,559 name.charact 985 00:54:41,559 --> 00:54:43,000 de ahí 986 00:54:43,000 --> 00:54:52,400 ponme en la posición 987 00:54:52,400 --> 00:54:54,460 diezima de la 988 00:54:54,460 --> 00:54:56,320 array el carácter 989 00:54:56,320 --> 00:54:57,940 diezimo de la string 990 00:54:57,940 --> 00:55:01,750 entonces 991 00:55:01,750 --> 00:55:04,030 luego aquí si eso 992 00:55:04,030 --> 00:55:07,119 array 993 00:55:07,119 --> 00:55:08,639 punto 994 00:55:08,639 --> 00:55:12,079 string de letras 995 00:55:12,079 --> 00:55:14,019 y veo que me pone 996 00:55:14,019 --> 00:55:15,980 lanzo 997 00:55:15,980 --> 00:55:17,900 ¿cómo te llamas? 998 00:55:17,900 --> 00:55:25,719 Estefano, sin PH, con la O al final, una F sola, sin la E delante. 999 00:55:27,679 --> 00:55:29,300 ¡Ay! ¡Mi rey! 1000 00:55:30,460 --> 00:55:34,000 ¡Guau! ¡Guau! ¡Guau! 1001 00:55:38,000 --> 00:55:41,530 ¿Qué tal? 1002 00:55:41,530 --> 00:55:43,530 ¿Qué tal? 1003 00:55:50,110 --> 00:55:58,429 Con esto, muchos ejercicios que antes habéis tardado una vida en hacer, se hacen mucho más rápido. 1004 00:56:01,050 --> 00:56:14,789 Con esto ahora puedo hacer los valores que me das, en vez de perderlos, los almaceno todos y luego después trabajo con los valores que me has dado y hago la media de lo positivo y la media de lo negativo. 1005 00:56:25,869 --> 00:56:29,449 ¿Pero estáis razonando o estáis copiando como se está grabando? 1006 00:56:29,630 --> 00:56:33,210 Es inútil que copiéis, razonad, pensad en lo que se está haciendo, 1007 00:56:33,389 --> 00:56:37,510 no escribid cosas copiando sin entender qué estamos haciendo. 1008 00:56:42,760 --> 00:56:45,820 ¿Entre qué habláis y qué pasa el tiempo acá a copiar? 1009 00:56:46,719 --> 00:56:50,500 Pues, ¿dudas? 1010 00:56:51,880 --> 00:56:54,219 Vamos a hacer un ejercicio difícil. 1011 00:56:54,219 --> 00:57:07,840 lo que has hecho en el char de letras 1012 00:57:07,840 --> 00:57:09,579 para que a mí me quede claro es 1013 00:57:09,579 --> 00:57:11,360 has creado un array de char 1014 00:57:11,360 --> 00:57:13,719 llamado letras 1015 00:57:13,719 --> 00:57:15,480 en el que 1016 00:57:15,480 --> 00:57:17,119 ese char recoge 1017 00:57:17,119 --> 00:57:19,159 la cantidad de posiciones 1018 00:57:19,159 --> 00:57:20,239 del string 1019 00:57:20,239 --> 00:57:23,679 o sea, un array de char 1020 00:57:23,679 --> 00:57:26,820 letras apunta a una estructura 1021 00:57:26,820 --> 00:57:28,079 con varias celdas 1022 00:57:28,079 --> 00:57:29,219 ¿cuántas celdas? 1023 00:57:29,519 --> 00:57:33,139 ¿cuántas letras tiene la palabra? 1024 00:57:35,780 --> 00:57:35,940 ¿sí? 1025 00:57:37,500 --> 00:57:38,880 yo no entiendo lo de dentro del 1026 00:57:38,880 --> 00:57:40,320 yo lo del 1027 00:57:40,320 --> 00:57:42,079 dentro del for 1028 00:57:42,079 --> 00:57:44,980 en la posición 1029 00:57:44,980 --> 00:57:46,280 y de letras 1030 00:57:46,280 --> 00:57:47,320 que es el array 1031 00:57:47,320 --> 00:57:51,159 la primera vez en la posición 0, la posición 1, la posición 2 1032 00:57:51,159 --> 00:57:52,440 me pones 1033 00:57:52,440 --> 00:57:55,079 el carácter en posición 1034 00:57:55,079 --> 00:57:57,219 y de la palabra. 1035 00:57:58,260 --> 00:57:59,579 Entonces, ponme 1036 00:57:59,579 --> 00:58:00,900 en letras de cero 1037 00:58:00,900 --> 00:58:03,659 el carácter en posición 1038 00:58:03,659 --> 00:58:05,639 cero de la palabra que me 1039 00:58:05,639 --> 00:58:06,139 manda la carta. 1040 00:58:07,019 --> 00:58:09,780 Este es el charazo cero 1041 00:58:09,780 --> 00:58:11,619 que me da el primer carácter. 1042 00:58:14,500 --> 00:58:15,800 Entonces, luego me dice 1043 00:58:15,800 --> 00:58:17,820 ok, ahora y vale 1044 00:58:17,820 --> 00:58:19,719 uno. Ponme dentro de 1045 00:58:19,719 --> 00:58:21,960 letras de uno, o sea, en esta celda de aquí 1046 00:58:21,960 --> 00:58:23,679 el carácter que está 1047 00:58:23,679 --> 00:58:32,889 en posición 1 de esta palabra, o sea, esta cosa de aquí, entonces me pone aquí, ¿dudas? 1048 00:58:32,889 --> 00:58:36,519 Sí. 1049 00:58:36,519 --> 00:58:42,519 Todos los tipos primitivos, tú puedes crear un array de todos los tipos primitivos, y luego de string, 1050 00:58:42,519 --> 00:58:44,519 de lo que quieras. 1051 00:58:44,519 --> 00:58:55,280 cualquier tipo de cosa 1052 00:58:55,280 --> 00:58:57,059 tú puedes crear un array de strings 1053 00:58:57,059 --> 00:58:58,900 puedes crear un array de scanners 1054 00:58:58,900 --> 00:59:00,639 puedes crear un array de 1055 00:59:00,639 --> 00:59:07,000 dudas 1056 00:59:07,000 --> 00:59:10,460 hacemos 1057 00:59:10,460 --> 00:59:13,519 complicamos un poquito esto 1058 00:59:13,519 --> 00:59:14,480 a ver, ¿os parece? 1059 00:59:17,340 --> 00:59:19,719 Estos son ejercicios súper sencillos. 1060 00:59:20,199 --> 00:59:22,320 Vamos a hacerlo un poquito más complejo. 1061 00:59:22,320 --> 00:59:23,119 ¿Eh? ¿Eh? 1062 00:59:32,699 --> 00:59:33,960 Temas de algo complejo. 1063 00:59:35,780 --> 00:59:37,840 No, lo que quería hacer es temas de algo complejo. 1064 00:59:43,199 --> 00:59:47,360 No, necesito lo que nos ha explicado todavía. 1065 00:59:47,699 --> 00:59:48,400 Para hacer lo que quiero. 1066 00:59:50,219 --> 00:59:50,739 Entonces... 1067 00:59:50,739 --> 00:59:54,739 Pero lo podemos hacer en una versión un poquito más simplificada, que es la siguiente, ¿vale? 1068 00:59:54,739 --> 01:00:06,880 Yo te doy una palabra, tú la pones en el array, como antes, pero si la letra está duplicada, no la pones. 1069 01:00:06,880 --> 01:00:22,159 Este es un ejercicio un poquito más complejo 1070 01:00:22,159 --> 01:00:25,000 Bastante más complejo 1071 01:00:31,000 --> 01:00:32,019 Si yo pongo casa 1072 01:00:32,019 --> 01:00:33,500 Me pone 1073 01:00:33,500 --> 01:00:35,039 C, A, S 1074 01:00:35,039 --> 01:00:36,599 Y un espacio vacío 1075 01:00:36,599 --> 01:00:37,480 ¿Cash? 1076 01:00:38,119 --> 01:00:38,579 ¿Cash? 1077 01:00:39,119 --> 01:00:41,079 ¿Con H al final lo que quiero es un minuto? 1078 01:00:41,579 --> 01:00:42,019 ¿Cash? 1079 01:00:44,019 --> 01:00:44,820 BigDollar. 1080 01:00:48,280 --> 01:00:49,079 ¿Cash? 1081 01:00:50,119 --> 01:00:50,960 ¿Cash? 1082 01:00:51,199 --> 01:00:53,639 Aquí pondría 1083 01:00:53,639 --> 01:00:55,380 C, A, S 1084 01:00:55,380 --> 01:00:56,760 y luego un espacio vacío. 1085 01:00:57,119 --> 01:00:57,900 ¿Por qué? 1086 01:00:58,539 --> 01:01:01,360 Porque casas son de cuatro letras, 1087 01:01:01,539 --> 01:01:03,679 tú creas un array de cuatro espacios, 1088 01:01:03,820 --> 01:01:05,539 pero luego pones solo C, A, S 1089 01:01:05,539 --> 01:01:10,760 entonces de cada un espacio vacío quitar este espacio necesitaréis lo que veremos mañana 1090 01:01:10,760 --> 01:01:16,460 si imprimes en un array 1091 01:01:16,460 --> 01:01:21,300 si no metes un valor 1092 01:01:21,300 --> 01:01:23,300 si no metes un valor 1093 01:01:23,300 --> 01:01:30,539 si solo imprimes 1094 01:01:30,539 --> 01:01:31,460 que es lo que quieres 1095 01:01:31,460 --> 01:01:33,199 y vas a unir un índice 1096 01:01:33,199 --> 01:01:34,420 que imprimirías 1097 01:01:34,420 --> 01:01:37,139 yo le pongo 1098 01:01:37,139 --> 01:01:41,380 lo escribo aquí 1099 01:01:41,380 --> 01:01:44,320 aquí he creado la red 1100 01:01:44,320 --> 01:01:45,860 pero todavía no he puesto nada dentro 1101 01:01:45,860 --> 01:01:48,159 entonces, ¿qué hay dentro por defecto? 1102 01:01:51,760 --> 01:01:52,280 chicos 1103 01:01:52,280 --> 01:01:53,139 oigan 1104 01:01:53,139 --> 01:01:54,880 ¿dónde estáis? 1105 01:01:55,639 --> 01:01:56,780 ¿dónde creéis que estáis? 1106 01:02:01,480 --> 01:02:03,539 porque si lo sabéis, lo dejamos así 1107 01:02:03,539 --> 01:02:05,940 y hacemos el examen esta semana dentro de 3 1108 01:02:05,940 --> 01:02:07,860 porque si os hace reír 1109 01:02:07,860 --> 01:02:12,449 ha entendido enseguida 1110 01:02:12,449 --> 01:02:20,730 Vuestro compañero ha hecho una pregunta 1111 01:02:20,730 --> 01:02:22,989 Vosotros, aparte de 1112 01:02:22,989 --> 01:02:24,389 faltar respecto a mí 1113 01:02:24,389 --> 01:02:26,610 estáis faltando respecto a él 1114 01:02:26,610 --> 01:02:28,650 y no sabéis qué pregunta 1115 01:02:28,650 --> 01:02:30,449 ha hecho ni la respuesta a esta pregunta 1116 01:02:30,449 --> 01:02:32,789 Si os parece bien esta cosa 1117 01:02:32,789 --> 01:02:34,670 porque sepáis que no está 1118 01:02:34,670 --> 01:02:49,730 por defecto 1119 01:02:49,730 --> 01:02:51,909 este debería ser 1120 01:02:51,909 --> 01:02:52,989 el rey vacío 1121 01:02:52,989 --> 01:02:55,889 el carácter vacío 1122 01:02:55,889 --> 01:03:26,369 Porque luego pone un espacio. No sé si es el espacio o cero, pero podríamos hasta decir aquí, pint de letras de cero. Es el char cero. 1123 01:03:28,050 --> 01:03:38,489 El símbolo correspondiente al char cero. Que probablemente es como, no sé si es un espacio, una cosa rara que luego él interpreta como un cero de espacio. 1124 01:03:38,489 --> 01:03:40,630 porque veis aquí donde pone la S aquí pone un espacio 1125 01:03:40,630 --> 01:03:42,349 pero eso sustancialmente 1126 01:03:42,349 --> 01:03:44,190 representa el carácter vacío 1127 01:03:44,190 --> 01:03:51,679 podéis ir a ver la palabra 1128 01:03:51,679 --> 01:03:53,380 que tiene 1129 01:03:53,380 --> 01:04:02,219 y la mirada del cero 1130 01:04:02,219 --> 01:04:04,420 es null, es el carácter null 1131 01:04:04,420 --> 01:04:07,519 es un carácter especial 1132 01:04:07,519 --> 01:04:11,440 no es el valor null como tal 1133 01:04:11,440 --> 01:04:14,139 no, porque no es mujer 1134 01:04:14,139 --> 01:04:20,480 luego lo interpreta 1135 01:04:20,480 --> 01:04:22,159 como un espacio aquí 1136 01:04:22,219 --> 01:04:27,980 Pero en realidad, si te vas al koiwashi, hay un espacio, hay un carácter para el espacio. 1137 01:04:27,980 --> 01:04:58,489 Por algún lado aquí debería haber un carácter para el espacio, no lo he visto. 1138 01:04:58,489 --> 01:05:01,769 Pero es diferente, ¿no? O sea, que no es lo mismo ese espacio... 1139 01:05:01,769 --> 01:05:07,130 Yo diría que es diferente, pero a lo mejor no, a lo mejor es como se... 1140 01:05:07,130 --> 01:05:24,130 El 32 es el espacio. El 0 es carácter nulo. Que luego un procesador de texto, el Java, interprete que es carácter nulo, te lo hago como un espacio, es otra cosa. 1141 01:05:24,130 --> 01:05:33,130 Pero si tú luego vas a mirar allí, porque yo podría, yo podría, ahora no te lo pilla porque es next, ¿vale? 1142 01:05:33,130 --> 01:05:37,849 si yo como cuando te dice como te llaman me pongo stefano espacio y esa pues ese 1143 01:05:37,849 --> 01:05:42,590 espacio es un carácter que no es igual a este cerdo 1144 01:05:42,590 --> 01:05:46,690 ahora como aquí he utilizado next sólo me pilla stefano, debería por ejemplo pillar nextline 1145 01:05:46,690 --> 01:05:53,949 para que funcione así, para hacer nextline y luego lanzo esto y pongo 1146 01:05:53,949 --> 01:06:01,929 stefano, pieza y ahora este no es lo mismo que este 1147 01:06:01,929 --> 01:06:03,650 visualmente se ven pero no son 1148 01:06:03,650 --> 01:06:08,610 un valor malo 1149 01:06:08,610 --> 01:06:09,269 vale 1150 01:06:09,269 --> 01:06:11,429 pues nada