我的Scala程序中有一个String,我想把它作为Int转换。
def foo(): Int = x.getTheNumericString().toInt
问题是x.getTheNumericString()
来自Java库并返回java.lang.String
,它没有toInt
方法。
我知道我可以用val s: String = "123"
创建一个Scala字符串,但我注意到当我创建一个像val t = "456"
这样的字符串时,我得到了一个java.lang.String
。 I have heard that Scala String is just a wrapper around java.lang.String,但我没有找到关于如何转换为Scala字符串的任何明确文档。
是否有一些我可以使用的功能:
def foo(): Int = f(x.getTheNumericString()).toInt
就目前而言,我的编译器抱怨原始定义value toInt is not a member of String
它不是包装器,而是java.lang.String。无需额外的麻烦:
» touch 123
» scala
...
val foo = new java.io.File("123")
// java.io.File = 123
// Get name is a java api, which returns Java string
foo.getName.toInt
// res2: Int = 123
使用Scala特定的字符串方法隐式修改java.lang.String
,因此不需要手动转换。