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

标签 java string scala scala-java-interop

我的 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.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

关于java - 将 java.lang.String 转换为 Scala 字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23810276/

相关文章:

java - 方法同步,但由于非序列化线程行为,代码产生随机结果

java - 无法执行目标 org.codehaus.mojo :exec-maven-plugin:1. 6.0:java

android - 在内存中加载大字符串的问题

scala - 压缩 HList 的推断函数类型

java - JAXB 生成的 xml 中的 "xsi:type"和 "xmlns:xsi"

java - 正则表达式匹配a-字母数字&b-数字&c-数字

java - 如何在Java中删除字符串中Unicode杂项符号的Unicode十进制值

c++ - 在 C++ 中格式化未知长度的字符串

java - 玩! 2.1 要我写scala代码

scala3 扩展方法类型参数