Rutas
/
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 único carácter. Varios char pueden componer un string, como "word", o los char se pueden procesar de forma independiente. Un literal de tipo char va entre comillas simples (por ejemplo, 'A').

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

Obtener los char de un String

El método String.toCharArray devuelve los caracteres de un string en forma de array. Como se menciona en arrays, puedes usar un bucle for para iterar sobre 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 incluidos en la biblioteca para inspeccionar y manipular char. Puedes encontrarlos 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

Añadir un char a un String

El operador + se puede usar para añadir 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 forma da como resultado 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 que añadir, 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 implementarás un conjunto parcial de rutinas de utilidad para ayudar a un desarrollador a limpiar nombres SqueakyClean.

En las 4 tareas irás construyendo gradualmente el método clean. Un nombre SqueakyClean válido consta de cero o más letras y guiones bajos.

En todos los casos se garantiza que el string de entrada no es null. Ten en cuenta que el método clean debe tratar un string vacío como válido.

1. Sustituye los espacios que encuentres por guiones bajos

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

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

2. Convierte kebab-case en camelCase

Modifica el método (static) SqueakyClean.clean() para convertir kebab-case en 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 sustituiremos 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 pestaña nueva
Java Exercism

¿Listo para empezar Impecable?

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