/ / Scala Konwertowanie ciągu wielowierszowego na BigInt - ciąg, scala, konwersja typu, bigint

Scala Konwertowanie ciągu wielowierszowego na BigInt - ciąg, scala, konwersja typu, bigint

Próbuję przeanalizować 100 50-cyfrowych liczb z ciągu znaków pod poniższym kodem:

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

ale kończę na "java.lang.NumberFormatException.forInputString (NumberFormatException.java:65) ". Nie mam pojęcia, dlaczego to nie działa, ponieważ kiedy łańcuch jest podzielony, każdy element listy ma typ String. Każda pomoc byłaby bardzo cenna.

Z poważaniem

Odpowiedzi:

1 dla odpowiedzi № 1

Prawdopodobnie jesteś w systemie Windows, gdzie EOL jest rn.

Też musisz to rozebrać.

Tutaj ponownie uruchomiłem system Windows, aby przeprowadzić demo ...

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)

Zauważ, że w cygwin muszę :se fileformat=dos w vi, aby użyć końców linii rn.

Oto przykład, w którym niedostrzeżona niedopasowanie impedancji między źródłowym EOL a EOL środowiska wykonawczego podsłuchiwało mnie:

jakiś głupi kod

Chcesz użyć s.lines.mkString aby go rozebrać.