Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

839
Visualizações
¿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 Respostas
Responde à pergunta

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 Relatório

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 Relatório

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 Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda