如何以特定数字访问字符串中的字符?

How can I access a char in string in at specific number?

我试过这段代码,但它给我错误。那么如何在 kotlin 中访问字符串中的字符呢?在java中,可以通过charAt()方法完成。

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

你能试试这个方法吗?

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

Kotlin 的美妙之处在于您可以通过几种方式实现它,例如。

  1. 您可以简单地通过索引访问它:

    while (x[i] != '+') {
        i++
    }
    
  2. 转换为CharArray

    val chars: CharArray = x.toCharArray()
    
    while (chars[i] != '+') {
        i++
    }
    
  3. 你也可以使用惯用的 Kotlin(首选):

    • forEach

      x.forEach { c ->
          if (c == '+') return@forEach
      }
      
    • forEachIndexed 如果你关心索引

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

在这两种情况下,您的角色都是通过 c

访问的

相当于 Javas String.charAt() in Kotlin is String.get()。由于这是作为运算符实现的,因此您可以使用 [index] 而不是 get(index)。例如

val firstChar: Char = "foo"[0]

或者如果您愿意

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