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 a java.lang.String
, which doesn't have a toInt
method.
I know I can create a Scala string with val s: String = "123"
, but I noticed that when I create a string like val t = "456"
I get a java.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
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
java.lang.String
is implicitly amended with Scala specific string methods so no manual conversion should be necessary.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With