我的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
答案 0 :(得分:9)
它不是一个包装器,但实际上是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
答案 1 :(得分:2)
java.lang.String
,因此不需要手动转换。
答案 2 :(得分:0)
使用asInstanceOf [String]从语法上将Java字符串转换为Scala字符串。
val str: String = "java_string".asInstanceOf[String]