web-dev-qa-db-fra.com

Comment puis-je accéder à un caractère en chaîne dans un numéro spécifique?

J'ai essayé ce code mais cela me donne des erreurs. Alors, comment puis-je accéder à un caractère dans une chaîne en kotlin. dans Java cela peut être fait par la méthode charAt ().

private fun abc(x: String) {
    var i: Int = 0
    while (x[i].toString() != "+") {
        var y: Char = x[i]
        i++
    }
}
9
Aakash Sharma

L'équivalent de Javas String.charAt () dans Kotlin est String.get () . Comme cela est implémenté en tant qu'opérateur, vous pouvez utiliser [index] Au lieu de get(index). Par exemple

val firstChar: Char = "foo"[0]

ou si vous préférez

val someString: String = "bar"
val firstChar: Char = someString.get(0)
20
mantono

Pourriez-vous s'il vous plaît essayer cette méthode à la place?

private fun abc(x: String) {
    $p = 1; 
    do {
        $p++
    }while (x[p]!= "+")
}
1
user5825184

La beauté de Kotlin est que vous pouvez le faire de plusieurs manières, par exemple.

  1. Vous pouvez simplement y accéder par index:

    while (x[i] != '+') {
        i++
    }
    
  2. Conversion en CharArray

    val chars: CharArray = x.toCharArray()
    
    while (chars[i] != '+') {
        i++
    }
    
  3. Vous pouvez également utiliser Kotlin idiomatique (préféré):

    • forEach

      x.forEach { c ->
          if (c == '+') return@forEach
      }
      
    • forEachIndexed si vous vous souciez de l'index

      x.forEachIndexed { index, c ->
          if (c == '+') {
              println("index=$index")
              return@forEachIndexed
          }
      }
      

Dans les deux cas, votre personnage est accessible avec c

0
Melquiades