Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

838
Views
¿Una forma de eliminar caracteres específicos de una cadena? (kotlin)

Así que tengo un campo de texto donde debe ingresar su texto "codificado" y volver a traducirlo a un idioma no codificado usando .replace para eliminar ciertos caracteres. Pero no puedo hacer que funcione.

Hay un "lenguaje de código" para niños en el que tomas una palabra, como gato, y para cada consonante agregas una "o" y la consonante nuevamente. Así que una "b" sería "bob". Con las vocales simplemente se quedan como están. Cat sería cocatot.

 fun translateBack(view : View) { val konsonanter = "bcdfghjklmnpqrstvwxzBCDFGHJKLMNPQRSTVWXZ" var input = editText.text.toString() var emptyString = "" for(i in konsonanter) { val find_text = i + "o" + i var conso = i.toString() textView.text = input.replace(find_text, conso, false) } }

Me gustaría que elimine las dos letras siguientes para cada consonante (si es posible). Entonces, si ingreso "cocowow", debería salir "vaca". En este momento solo obtengo lo que ingresé en el campo de texto...

over 4 years ago · Santiago Trujillo
3 answers
Answer question

0

Use un bucle forEach a través de los caracteres de input y reemplace:

 konsonanter.forEach { input = input.replace("${it}o${it}", "${it}", false) } textView.text = input
over 4 years ago · Santiago Trujillo Report

0

El problema es que está configurando el texto en textView en cada bucle y nunca actualizando input . Básicamente, solo está viendo el resultado de la llamada de replace que ocurre con los "ZoZ" y "Z" al final del ciclo, y input sigue siendo la cadena original.

En su lugar, puede seguir actualizando input y luego configurar el texto cuando haya terminado:

 val konsonanter = "bcdfghjklmnpqrstvwxzBCDFGHJKLMNPQRSTVWXZ" var input = editText.text.toString() var emptyString = "" for (i in konsonanter) { val find_text = i + "o" + i val conso = i.toString() input = input.replace(find_text, conso, false) } textView.text = input
over 4 years ago · Santiago Trujillo Report

0

Si usa la función de reemplazo con Regex y una función de transformación como parámetros, puede crear una función de extensión realmente concisa y completamente autónoma:

 fun String.translateBack() = with(Regex("([bcdfghjklmnpqrstvwxz])o\\1", RegexOption.IGNORE_CASE)) { replace(this) { "${it.value.first()}" } }

Explicación:

El Regex coincidirá con todas las mismas consonantes (sin importar el caso) alrededor de una "o". Para asegurarse de que la consonante anterior y posterior a la "o" sea la misma, se utilizó una referencia inversa al primer grupo.

Entonces, esto también funcionará para casos como "coCatot".

Uso:

 println("bob".translateBack()) // b println("cocatot".translateBack()) // cat println("coCatot".translateBack()) // cat
over 4 years ago · Santiago Trujillo Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!