web-dev-qa-db-ja.com

特定の番号の文字列の文字にアクセスするにはどうすればよいですか?

私はこのコードを試しましたが、エラーが発生しています。では、kotlinで文字列内の文字にアクセスするにはどうすればよいですか。 Javaでは、charAt()メソッドで実行できます。

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

KotlinのJava String.charAt() に相当するものは String.get() です。これは演算子として実装されているため、get(index)の代わりに[index]を使用できます。例えば

val firstChar: Char = "foo"[0]

またはご希望の場合

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

代わりにこの方法を試していただけませんか?

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

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でアクセスされます

0
Melquiades