Rubyでは、次のことを行いました。
"string1::string2".split("::")
Scalaでは、単一の文字ではなく文字列を使用してsplit
を見つける方法が見つかりません。
あなたの例では違いはありませんが、Scala=の_String#split
_メソッドは実際には正規表現を表すString
を取ります。 "a..b.c".split("""\.\.""")
などの必要に応じて、またはRegEx
:"""\.\.""".r.split("a..b.c")
でsplitメソッドを呼び出すことができます。
REPLはStack Overflowよりも簡単です。例をそのまま貼り付けました。
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.
scala> "string1::string2".split("::")
res0: Array[Java.lang.String] = Array(string1, string2)
Rubyの行は、Scalaもそうであり、Array[String]
。
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)
_