Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Convert java.lang.String to Scala string

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

like image 826
munk Avatar asked May 22 '14 14:05

munk


2 Answers

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
like image 157
om-nom-nom Avatar answered Oct 31 '22 19:10

om-nom-nom


java.lang.String is implicitly amended with Scala specific string methods so no manual conversion should be necessary.

like image 22
Erik Kaplun Avatar answered Oct 31 '22 18:10

Erik Kaplun