Опитвам се да разбера 100 50-цифрени числа от низ с по-нисък код:
val input = """37107287533902102798797998220837590246510135740250
|46376937677490009712648124896970078050417018260538
|74324986199524741059474233309513058123726617309629""".stripMargin
val list = input.split("""n""").map(BigInt(_))
но аз завършвам с java.lang.Нямам представа защо това не работи, тъй като, когато низът е разделен, всеки елемент от списъка е от тип String. Всяка помощ ще бъде много оценявам.
С Най-Добри Пожелания
Отговори:
1 за отговор № 1Вероятно сте на Windows, където EOL е rn.
Трябва също така да го съблечеш.
Ето, аз се рестартира в 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 за използване на rn крайни линии.
Ето един пример, при който непотвърденото несъответствие на импеданса между източника на EOL и времето за изпълнение на EOL ме подслушваше:
Искате да използвате s.lines.mkString
да го изтрие.