В Scala я не могу найти, как split использовать строку, а не один символ.
Ответ 1
В вашем примере это не имеет значения, но метод String#split в Scala фактически принимает String, который представляет собой регулярное выражение. Поэтому обязательно избегайте определенных символов по мере необходимости, например, например. в "a..b.c".split("""\.\.""") или для того, чтобы сделать этот факт более очевидным, вы можете вызвать метод split на RegEx: """\.\.""".r.split("a..b.c").
Ответ 2
REPL даже проще, чем переполнение стека. Я просто вставил ваш пример, как есть.
Welcome to Scala version 2.8.1.final (Java HotSpot Server VM, Java 1.6.0_22). Type in expressions to have them evaluated. Type :help for more information.
Эта строка Ruby должна работать так же, как и в Scala, и возвращает Array[String].
Ответ 4
Если вы посмотрите на реализацию Java, вы увидите, что параметр String#split будет фактически скомпилирован в регулярное выражение.
Нет проблем с "string1::string2".split("::"), потому что ":" является просто символом в регулярном выражении, но, например, "string1|string2".split("|") не даст ожидаемого результата. "|" является специальным символом для чередования в регулярном выражении.
scala> "string1|string2".split("|")
res0: Array[String] = Array(s, t, r, i, n, g, 1, |, s, t, r, i, n, g, 2)