将java.lang.String转换为Scala字符串

问题描述 投票:6回答:2

我的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.StringI 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 string scala scala-java-interop
2个回答
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

2
投票

使用Scala特定的字符串方法隐式修改java.lang.String,因此不需要手动转换。

© www.soinside.com 2019 - 2024. All rights reserved.