Convert java.lang.String to Scala string
Solution 1
It's not a wrapper, but actually java.lang.String. No need in additional hassle:
» 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
Solution 2
java.lang.String
is implicitly amended with Scala specific string methods so no manual conversion should be necessary.
Comments
-
munk almost 2 years
I have a String in my Scala program that I'd like to cast as an Int.
def foo(): Int = x.getTheNumericString().toInt
The problem is that
x.getTheNumericString()
comes from a Java library and returns ajava.lang.String
, which doesn't have atoInt
method.I know I can create a Scala string with
val s: String = "123"
, but I noticed that when I create a string likeval t = "456"
I get ajava.lang.String
. I have heard that Scala String is just a wrapper around java.lang.String, but I haven't found any clear documentation on how to cast to the Scala string.Is there some function I can use like:
def foo(): Int = f(x.getTheNumericString()).toInt
As it stands now, my compiler complains about the original definition
value toInt is not a member of String