Scala 将多行字符串转换为 BigInt

2023-12-10

我正在尝试使用以下代码从字符串中解析 100 个 50 位数字:

val input = """37107287533902102798797998220837590246510135740250
          |46376937677490009712648124896970078050417018260538
          |74324986199524741059474233309513058123726617309629""".stripMargin
val list = input.split("""\n""").map(BigInt(_))

但我以“java.lang.NumberFormatException.forInputString(NumberFormatException.java:65)”结尾。我不知道为什么这不起作用,因为当字符串被分割时,列表的每个元素都是字符串类型。任何帮助将非常感激。

此致


可能您使用的是 Windows,其中 EOL 是 \r\n。

你也必须把它去掉。

在这里,我重新启动到 Windows 来演示...

apm@halyard ~/tmp
$ vi bigbomb.scala

apm@halyard ~/tmp
$ skalac bigbomb.scala ; skala bigbomb.Test
"ava.lang.NumberFormatException: For input string: "35740250
        at java.lang.NumberFormatException.forInputString(NumberFormatException.java:65)

请注意,在 cygwin 中,我必须:se fileformat=dos在 vi 中使用 \r\n 行结尾。

下面是一个示例,其中源 EOL 和运行时 EOL 之间未确认的阻抗不匹配困扰了我:

一些愚蠢的代码

你想使用s.lines.mkString把它去掉。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Scala 将多行字符串转换为 BigInt 的相关文章

随机推荐