apuntes:cadenas
Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
apuntes:cadenas [2022/10/09 16:46] – [Ejercicios] Santiago Faci | apuntes:cadenas [2023/10/26 20:01] (current) – [Ejercicios] Santiago Faci | ||
---|---|---|---|
Line 4: | Line 4: | ||
Hay que tener en cuenta que, puesto que las cadenas de texto en Java son inmutables, todos los métodos que realizan operaciones sobre un objeto '' | Hay que tener en cuenta que, puesto que las cadenas de texto en Java son inmutables, todos los métodos que realizan operaciones sobre un objeto '' | ||
+ | |||
+ | ===== A tener en cuenta ===== | ||
+ | |||
+ | - El tipo '' | ||
+ | - Al tratarse de un objeto, podemos realizar algunas operaciones sobre la misma variable/ | ||
+ | - Java nos permite utilizarlo como si fuera un tipo primitivo (aunque no lo sea) puesto que es un dato muy utilizado y asi nos será más cómodo | ||
+ | - Como realmente es un objeto, su valor por defecto será '' | ||
+ | - Cualquier valor puede ser representado como una cadena de texto, por lo que normalmente será el tipo de dato utilizado siempre que se quiera recoger algún input del usuario | ||
+ | |||
+ | ===== Cuándo utilizar una cadena de texto ===== | ||
+ | |||
+ | Por supuesto, usaremos una cadena cuando queramos almacenar texto. | ||
+ | |||
+ | A veces, incluso cuando el valor que se quiere almacenar está compuesto exclusivamente de dígitos, éste debe almacenarse como cadena de texto, puesto que no son valores numéricos realmente ya que no soportan ninguna operación matemática ni se espera que se haga ninguna con ellos. | ||
+ | |||
+ | Estos son algunos ejemplos: | ||
+ | - DNI | ||
+ | - Número de la Seguridad Social | ||
+ | - Cuenta Bancaria | ||
+ | - Teléfono | ||
+ | |||
+ | Y si fuera necesario realizar alguna operación con sus dígitos (calcular dígitos de control, por ejemplo) siempre se puede recurrir al parseo del valor para realizar esos cálculos. | ||
+ | |||
+ | Y, en definitiva, hay que tener en cuenta que todo input de usuario (tanto de consola como a través de formularios) viene siempre en forma de texto y somos nosotros quienes tenemos luego que parsearlo al tipo correcto (tras las comprobaciones) | ||
+ | |||
+ | === Casos de uso con cadenas === | ||
+ | |||
+ | - Un usuario introduce su nombre y apellidos en una caja de texto | ||
+ | * Convertir a mayúscula/ | ||
+ | - Un usuario introduce su número de cuenta | ||
+ | * Convertir la cadena en un array de caracteres para realizar el cálculo del digito de control | ||
+ | - Un usuario introduce su número de DNI (con letra) | ||
+ | * Convertimos el valor a un número para hacer los cálculos y luego lo almacenamos todo junto (con letra) concatenando. | ||
+ | - Un usuario introduce un precio en un formulario | ||
+ | * Tras las comprobaciones (caja de texto vacía o valor sólo compuesto por dígitos) tendremos que parsearlo al tipo de dato que corresponda (float en este caso) | ||
===== Extracción de un caracter particular ===== | ===== Extracción de un caracter particular ===== | ||
Line 42: | Line 77: | ||
<code java> | <code java> | ||
- | String nombre = "Asociación Española de Programadores Informáticos"; | + | String nombre = "CodeAndCoke"; |
// Devuelve la subcadena desde la posición 10 en adelante | // Devuelve la subcadena desde la posición 10 en adelante | ||
String subcadena = nombre.substring(10); | String subcadena = nombre.substring(10); | ||
- | System.out.println(subcadena); | + | System.out.println(subcadena); |
// Devuelve la subcadena entre dos posiciones dadas | // Devuelve la subcadena entre dos posiciones dadas | ||
subcadena = nombre.substring(5, | subcadena = nombre.substring(5, | ||
- | System.out.println(subcadena); | + | System.out.println(subcadena); |
</ | </ | ||
Line 58: | Line 92: | ||
<code java> | <code java> | ||
- | String nombre = "Asociación Española de Programadores Informáticos"; | + | String nombre = "CodeAndCoke"; |
- | String nombreCorto = "AEPI"; | + | String nombreCorto = "CAC"; |
if (nombre.equals(nombreCorto)) { | if (nombre.equals(nombreCorto)) { | ||
System.out.println(" | System.out.println(" | ||
Line 73: | Line 107: | ||
<code java> | <code java> | ||
- | String nombre = "Asociación Española de Programadores Informáticos"; | + | String nombre = "CodeAndCoke"; |
String nombreMinusculas = nombre.toLowerCase(); | String nombreMinusculas = nombre.toLowerCase(); | ||
- | System.out.println(nombreMinusculas); | + | System.out.println(nombreMinusculas); |
- | String nombre = "Asociación Española de Programadores Informáticos"; | + | String nombre = "CodeAndCoke"; |
String nombreMayusculas = nombre.toUpperCase(); | String nombreMayusculas = nombre.toUpperCase(); | ||
- | System.out.println(nombreMayusculas); | + | System.out.println(nombreMayusculas); |
</ | </ | ||
Line 87: | Line 121: | ||
<code java> | <code java> | ||
- | String nombre = "Asociación Española de Programadores Informáticos"; | + | String nombre = "code and coke"; |
- | int posicion = nombre.indexOf(" | + | int posicion = nombre.indexOf(" |
if (posicion == -1) { | if (posicion == -1) { | ||
- | System.out.println(" | + | System.out.println(" |
} | } | ||
else { | else { | ||
- | System.out.println(" | + | System.out.println(" |
+ posicion); | + posicion); | ||
} | } | ||
Line 103: | Line 137: | ||
<code java> | <code java> | ||
- | String nombre = "Asociación Española de Programadores Informáticos"; | + | String nombre = "CodeAndCoke"; |
- | String busqueda = "Programadores"; | + | String busqueda = "Coke"; |
- | String reemplazo = "Desarrolladores"; | + | String reemplazo = "Code"; |
nombre = nombre.replace(busqueda, | nombre = nombre.replace(busqueda, | ||
- | System.out.println(nombre); | + | System.out.println(nombre); |
</ | </ | ||
Line 136: | Line 170: | ||
<code java> | <code java> | ||
- | String cadena = "AEPI"; | + | String cadena = "CODE"; |
char[] caracteres = cadena.toCharArray(); | char[] caracteres = cadena.toCharArray(); | ||
- | System.out.println(Arrays.toString(caracteres)); | + | System.out.println(Arrays.toString(caracteres)); |
</ | </ | ||
Line 144: | Line 178: | ||
====== Ejercicios ====== | ====== Ejercicios ====== | ||
+ | |||
+ | {{ ejercicio.png}} | ||
- Realiza un programa que sea capaz de seleccionar, | - Realiza un programa que sea capaz de seleccionar, | ||
Line 150: | Line 186: | ||
- Utilizando matrices, diseña el tablero del juego del 3 en raya y permite al jugador jugar contra el ordenador | - Utilizando matrices, diseña el tablero del juego del 3 en raya y permite al jugador jugar contra el ordenador | ||
- Implementa ahora el juego anterior pero en esta ocasión permite que dos personas jueguen una contra otra | - Implementa ahora el juego anterior pero en esta ocasión permite que dos personas jueguen una contra otra | ||
- | - Realiza una aplicación que compruebe si un número de DNI (con la letra) es correcto. Puedes consultar [[http:// | + | - Realiza una aplicación que compruebe si un número de DNI (con la letra) es correcto. Puedes consultar [[https:// |
- Idea algún mecanismo que permita saber si una dirección de email que introduce el usuario es correcta | - Idea algún mecanismo que permita saber si una dirección de email que introduce el usuario es correcta | ||
- Idea algún algoritmo que permita saber si algo introducido por el usuario es un número entero o con decimales | - Idea algún algoritmo que permita saber si algo introducido por el usuario es un número entero o con decimales | ||
- Escribe un programa que reciba una cadena de texto y escriba por pantalla esa misma cadena pero al revés | - Escribe un programa que reciba una cadena de texto y escriba por pantalla esa misma cadena pero al revés | ||
- El método '' | - El método '' | ||
+ | - Realiza un ejercicio que permita convertir números escritos como cadenas de texto (por ejemplo, " | ||
---- | ---- | ||
(c) 2019-{{date> | (c) 2019-{{date> |
apuntes/cadenas.1665333971.txt.gz · Last modified: 2022/10/09 16:46 by Santiago Faci