我正在尝试将字符串中的字符更改为其他字符。
这是我的代码
fun main(args: Array<String>) {
var str: String = "H...H"
for(i in 0..str.length-1) {
if( str[i] == '.')
str[i] = 'B'
}
println(ans)
}
Run Code Online (Sandbox Code Playgroud)
但这会产生错误:
jdoodle.kt:20:16: error: no set method providing array access
str[i] = 'B'
Run Code Online (Sandbox Code Playgroud)
但下面的代码工作正常:
fun main(args: Array<String>) {
var str: String = "H...H"
var ans : String = ""
for(i in 0..str.length-1) {
if( str[i] == 'H')
ans += str[i]
else if( str[i] == '.')
ans += 'B'
}
println(ans)
}
Run Code Online (Sandbox Code Playgroud)
我只想将字符串中的所有 ..... 更改为 B。
就像“H...H”到“HBBBH”
为什么第一个代码不起作用?
第一个示例不起作用,因为Stringkotlin 中的 s 是不可变的,您无法更改字符。相反,您必须创建一个新的String,就像您的第二个示例一样(实际上,它String为每次循环创建一个新的)。
Kotlinreplace为您提供了一个函数:
fun main() {
val input = "H...H"
val output = input.replace('.', 'B')
println(output) // Prints "HBBBH"
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4480 次 |
| 最近记录: |