Tracks
/
Java
Java
/
Ejercicios
/
Impecable
Impecable

Impecable

Ejercicio de aprendizaje

Introducción

Caracteres

Caracteres

El tipo primitivo char de Java es una representación de 16 bits de un solo carácter. Varios char pueden formar un string, como "word", o los char se pueden procesar de forma independiente. Un literal de tipo char se escribe entre comillas simples (por ejemplo, 'A').

char lowerA = 'a';
char upperB = 'B';

Cómo obtener los char de un String

El método String.toCharArray devuelve los char de un String como un array. Como se mencionó en arrays, puedes usar un bucle for para recorrer el array.

String text = "Hello";
char[] asArray = text.toCharArray();

for (char ch: asArray) {
    System.out.println(ch);
}

// Outputs:
// H
// e
// l
// l
// o

La clase Character

Hay muchos métodos integrados de la biblioteca para inspeccionar y manipular char. Estos se encuentran como métodos estáticos de la clase java.lang.Character. Aquí tienes algunos ejemplos:

Character.isWhitespace(' ');    // true
Character.isWhitespace('#');    // false

Character.isLetter('a');        // true
Character.isLetter('3');        // false

Character.isDigit('6');         // true
Character.isDigit('?');         // false

Cómo agregar un char a un String

El operador + se puede usar para agregar un char a un String.

'a' + " banana"     // => "a banana"
"banana " + 'a'     // => "banana a"
Caution

¡Ten cuidado de no usar + para unir dos char y formar un String! Sumar dos char de esta manera da un int, no un String. Por ejemplo:

'b' + 'c';
// => 197 (not the String "bc")

Esto se debe a que Java promueve el char a un int (consulta 4.2 Primitive Types and Values de la Java Language Specification).

Sin embargo, cuando hay muchos caracteres por agregar, puede ser más eficiente usar un StringBuilder:

StringBuilder builder = new StringBuilder();
builder.append('a');
builder.append('b');
builder.append('c');

String builtString = builder.toString();
// => abc

Instrucciones

En este ejercicio vas a implementar un conjunto parcial de rutinas utilitarias para ayudar a un desarrollador a limpiar nombres de SqueakyClean.

A lo largo de las 4 tareas irás construyendo poco a poco el método clean. Un nombre de SqueakyClean válido se compone de cero o más letras y guiones bajos.

En todos los casos, se garantiza que el string de entrada no es nulo. Ten en cuenta que el método clean debe tratar una cadena vacía como válida.

1. Reemplaza cualquier espacio que encuentres por guiones bajos

Implementa el método (static) SqueakyClean.clean() para reemplazar cualquier espacio por guiones bajos. Esto también aplica a los espacios al inicio y al final.

SqueakyClean.clean("my   Id");
// => "my___Id"

2. Convierte kebab-case a camelCase

Modifica el método (static) SqueakyClean.clean() para convertir kebab-case a camelCase.

SqueakyClean.clean("a-bc");
// => "aBc"

3. Convierte leetspeak a texto normal

Modifica el método (static) SqueakyClean.clean() para convertir leetspeak a texto normal.

Por simplicidad, solo reemplazaremos 4, 3, 0, 1 y 7 por a, e, o, l y t, respectivamente.

SqueakyClean.clean("H3ll0 W0rld");
// => "Hello_World"
SqueakyClean.clean("4 73s7");
// => "a_test"

4. Omite los caracteres que no sean letras

Modifica el método (static) SqueakyClean.clean() para omitir cualquier carácter que no sea una letra.

SqueakyClean.clean("a$#.b");
// => "ab"
Editar en GitHub El enlace se abre en una ventana o una pestaña nuevas
Java Exercism

¿Todo listo para empezar Impecable?

Regístrate en Exercism para aprender y dominar Java con 26 conceptos158 ejercicios y mentoría humana real, todo gratis.