-
Notifications
You must be signed in to change notification settings - Fork 86
Expand file tree
/
Copy pathdescription.es.yml
More file actions
74 lines (54 loc) · 3.53 KB
/
description.es.yml
File metadata and controls
74 lines (54 loc) · 3.53 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
---
name: Cadenas de llamadas de métodos
theory: |
El procesamiento de datos puede constar de una cantidad considerable de pasos que deben realizarse.
Tomemos como ejemplo la tarea de crear una dirección de página web basada en el nombre de un artículo ingresado por el usuario. Esta tarea a menudo surge al publicar artículos en blogs. Estas direcciones se ven así:
```
https://codica.la/blog/de-obrero-a-programador
```
La última parte aquí, *de-obrero-a-programador*, se crea automáticamente con el código que hemos escrito en Hexlet. Por cierto, tiene un nombre especial: se llama [**slug**](https://en.wikipedia.org/wiki/Clean_URL#Slug).
¿Qué pasos se deben seguir para obtener una cadena similar? Aquí hay solo algunos de ellos:
* Convertir todo a minúsculas para evitar la creación accidental de duplicados de páginas en los motores de búsqueda.
* Limpiar el nombre de los espacios en blanco alrededor. Pueden aparecer accidentalmente al ingresar el nombre.
* Realizar transliteración. Es mejor que las direcciones solo contengan caracteres del alfabeto latino.
* Eliminar todos los caracteres especiales, como signos de interrogación, exclamaciones, etc.
* Reemplazar todos los espacios por guiones.
Algunos de estos pasos requieren conocimientos nuevos para nosotros, por lo que los omitiremos. Los demás pasos se verán más o menos así:
```java
// Nombre ingresado por el usuario. En inglés para mayor simplicidad
var name = " How much is the fish? \n";
// Eliminamos los espacios y saltos de línea al final
name = name.trim();
// Eliminamos el signo de interrogación
name = name.replace("?", "");
// Reemplazamos los espacios por guiones
name = name.replace(" ", "-");
// Convertimos a minúsculas
name = name.toLowerCase();
System.out.println(name); // => how-much-is-the-fish
```
Si observamos detenidamente este código, podemos notar un patrón común. El método devuelve los datos que asignamos a la variable y luego los procesa en una cadena de llamadas de métodos.
Este patrón se puede simplificar eliminando la reasignación intermedia de la variable:
```java
var name = " How much is the fish? ";
name = name.trim().replace("?", "").replace(" ", "-").toLowerCase();
System.out.println(name); // => how-much-is-the-fish
```
Gracias a que cada método devuelve una nueva cadena, podemos seguir procesándola llamando a los métodos uno tras otro. Si la cadena de métodos se vuelve demasiado larga, se puede dividir en varias líneas:
```java
name = name.trim()
.replace("?", "")
.replace(" ", "-")
.toLowerCase();
```
A pesar de la conveniencia de este mecanismo, no se debe abusar de él. Las variables intermedias pueden facilitar la comprensión del código.
instructions: |
Escriba un código que tome los datos de la variable `name` y los capitalice. En programación, esto se llama capitalización, que convierte la primera letra de una palabra en mayúscula y el resto en minúsculas. Por ejemplo: *heXlet => Hexlet*. El programa debe imprimir el resultado en la pantalla.
Para extraer partes de una palabra, use el método [substring()](https://ru.hexlet.io/qna/java/questions/kak-izvlech-podstroku-iz-stroki-v-java?utm_source=code-basics&utm_medium=referral&utm_campaign=qna&utm_content=lesson):
```java
// El primer parámetro es el índice inicial, el segundo es el índice final (no incluido)
"hexlet".substring(0, 1); // "h"
// Por defecto, hasta el final de la cadena
"hexlet".substring(1); // "exlet"
```
# tips: []