4

以下のコードを使用して、文字列から 100 個の 50 桁の数字を解析しようとしています。

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

しかし、私は「java.lang.NumberFormatException.forInputString(NumberFormatException.java:65)」で終わっています。文字列が分割されると、リストの各要素は文字列型になるため、これが機能しない理由はわかりません。どんな助けでも大歓迎です。

よろしくお願いします

4

1 に答える 1

1

おそらく、EOL が \r\n である Windows を使用しています。

あなたもそれを剥がさなければなりません。

ここでは、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

于 2013-06-13T20:21:09.113 に答える