Scala将多行字符串转换为BigInt

时间:2013-06-13 15:05:40

标签: string scala type-conversion bigint

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

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

但我的结尾是“java.lang.NumberFormatException.forInputString(NumberFormatException.java:65)”。我不知道为什么这不起作用,因为当string被拆分时,list的每个元素都是String类型。任何帮助将不胜感激。

祝你好运

1 个答案:

答案 0 :(得分:1)

可能你在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中,我必须在vi中:se fileformat=dos使用\ r \ n行结尾。

以下是源EOL与运行时EOL之间未确认的阻抗不匹配的示例:

some dumb code

您想使用s.lines.mkString将其删除。