Normalizar un texto en Kotlin

normalizar un texto

Normalizar un texto en Kotlin

Para quitarle los caracteres especiales a un texto en Kotlin, podemos usar la función normalize().

Esto puede ser muy útil para por ejemplo hacer un filtro de búsqueda.

Aquí te dejo un ejemplo:

fun String.normalizeText(): String {     val temp = Normalizer.normalize(lowercase(Locale.US), Normalizer.Form.NFD)     return REGEX_UNACCENT.replace(temp, "") }  private val REGEX_UNACCENT = "\\p{InCombiningDiacriticalMarks}+".toRegex()

¿Y cómo podríamos testearlo?

Muy fácil:

class NormalizeTextKtTest {      @Test     fun `GIVEN a normal text WHEN normalizeText THEN return the proper string`() {         val givenText = "aeiou"         val expectedText = "aeiou"          val result = givenText.normalizeText()          result shouldBeEqualTo expectedText     }      @Test     fun `GIVEN a weird text WHEN normalizeText THEN return the proper string`() {         val givenText = "áéíóúàèìòùäëïöüAEIOUñ"         val expectedText = "aeiouaeiouaeiouaeioun"          val result = givenText.normalizeText()          result shouldBeEqualTo expectedText     } }

Publicado: 2022-08-14 Actualizado: 2024-03-25