Kotlin字符串存在,但可以';不要使用几乎所有的字符串功能

Kotlin字符串存在,但可以';不要使用几乎所有的字符串功能,kotlin,Kotlin,小结:我有一个字符串,可以从中打印和使用子字符串,但不能使用长度等属性或.toInt()或.compareTo()等函数,为什么会出现这种情况 var s = "20" val myToast = Toast.makeText(this, s, Toast.LENGTH_SHORT) myToast.show() //20 val myToast2 = Toast.makeText(this, s.length, Toast.LENGTH_SHORT) myToast2.show() //Th

小结:我有一个字符串,可以从中打印和使用子字符串,但不能使用长度等属性或.toInt()或.compareTo()等函数,为什么会出现这种情况

var s = "20"
val myToast = Toast.makeText(this, s, Toast.LENGTH_SHORT)
myToast.show()
//20

val myToast2 = Toast.makeText(this, s.length, Toast.LENGTH_SHORT)
myToast2.show()
//The app crashes with the error: android.content.res.Resources$NotFoundException: String resource ID #0x2
我可以调用字符串s上的子字符串,但不能调用length、toInt()、compareTo()等


该字符串显然存在,因为我可以打印它并使用子字符串,但如果这是真的,为什么我的应用程序在尝试使用它的其他属性和函数时会抛出错误?

在长度末尾添加.toString、toInt()、compareTo()等,因为s.length 返回int:notstring

这是你修改过的答案
var s=“20”
val myToast=Toast.makeText(this,s,Toast.LENGTH\u SHORT)
myToast.show()
//二十

val myToast2=Toast.makeText(这是s.length.toString(),Toast.length\u SHORT)

myToast2.show()

Toast.makeText()有两个重载。一个接受
字符串作为第二个参数,并显示该字符串。另一个接受
Int
作为第二个参数,并显示具有该整数id的任何字符串资源(通常在此处传递类似
R.string.my_string

当您在字符串上调用
.length
时,将返回一个Int。这意味着您将调用第二个重载,然后它将查找id为
2
的字符串资源。那不存在,所以你崩溃了


如果只想显示数字2,则需要再次将其设置为字符串。您可以使用
.toString()
“${s.length}”
等等。

将整数传递给
Toast.makeText
,这样它就可以按id查找资源了,这不是问题吗?@wobr我在哪里传递int?据我所知,s是一个字符串。编辑,算出它,谢谢!