Kotlin中调用Char参数的replace()方法替换字符不生效
问题根因
Kotlin 的字符串是不可变类型,String类提供的replace()及其他所有字符串操作方法,都不会修改调用方法的原字符串对象,只会将替换完成的结果作为新的字符串返回。
你当前的代码只调用了replace()方法,但没有接收方法返回的新字符串,原result变量始终指向最初赋值的"Hi!"实例,打印自然不会出现预期的修改结果。
修复方式
将replace()返回的结果重新赋值给变量即可:
var result = "Hi!" result = result.replace('i','z') // 此时打印result会得到正确结果 Hz!
如果不需要保留原字符串,也可以直接在变量声明时接收处理结果,哪怕用val声明不可变变量也可以正常使用:
val result = "Hi!".replace('i','z')
内容的提问来源于stack exchange,提问作者Bob Redity
相关产品推荐
相关产品推荐

