Convert java.lang.String to Scala string

10,365

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.

Share:
10,365
munk
Author by

munk

FP Enthusiast. Hacker. Team Lead.

Updated on June 13, 2022

Comments

  • munk
    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 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