diff options
author | michelou <michelou@epfl.ch> | 2007-06-13 17:22:51 +0000 |
---|---|---|
committer | michelou <michelou@epfl.ch> | 2007-06-13 17:22:51 +0000 |
commit | 52759489db5d74728bf63f0409a9d863daf3284b (patch) | |
tree | f736a179cc955973f4d3ba948a84a72b011d1e1f /src | |
parent | 1e6f4c280df5c05827fdd585701be17be90d0447 (diff) | |
download | scala-52759489db5d74728bf63f0409a9d863daf3284b.tar.gz scala-52759489db5d74728bf63f0409a9d863daf3284b.tar.bz2 scala-52759489db5d74728bf63f0409a9d863daf3284b.zip |
fixed split method on JVM
Diffstat (limited to 'src')
-rw-r--r-- | src/dotnet-library/scala/runtime/RichString.scala | 2 | ||||
-rw-r--r-- | src/library/scala/runtime/RichString.scala | 18 |
2 files changed, 17 insertions, 3 deletions
diff --git a/src/dotnet-library/scala/runtime/RichString.scala b/src/dotnet-library/scala/runtime/RichString.scala index 1b087d7ff9..19085eee88 100644 --- a/src/dotnet-library/scala/runtime/RichString.scala +++ b/src/dotnet-library/scala/runtime/RichString.scala @@ -135,6 +135,8 @@ final class RichString(val self: String) extends Seq[Char] with Ordered[String] def split(separator: Char): Array[String] = self.Split(Array(separator)) + def split(separators: Array[Char]): Array[String] = self.Split(separators) + def toByte: Byte = System.Byte.Parse(self) def toShort: Short = System.Int16.Parse(self) def toInt: Int = System.Int32.Parse(self) diff --git a/src/library/scala/runtime/RichString.scala b/src/library/scala/runtime/RichString.scala index 241d96f303..c8f5160351 100644 --- a/src/library/scala/runtime/RichString.scala +++ b/src/library/scala/runtime/RichString.scala @@ -112,10 +112,10 @@ final class RichString(val self: String) extends Seq[Char] with Ordered[String] * </blockquote> */ def stripMargin(marginChar: Char): String = { - val buf = new scala.compat.StringBuilder() + val buf = new StringBuilder() for (line <- linesWithSeparators) { val len = line.length - var index = 0; + var index = 0 while (index < len && line.charAt(index) <= ' ') index += 1 buf append (if (index < len && line.charAt(index) == marginChar) line.substring(index + 1) else line) @@ -133,7 +133,19 @@ final class RichString(val self: String) extends Seq[Char] with Ordered[String] */ def stripMargin: String = stripMargin('|') - def split(separator: Char): Array[String] = self.split(separator.toString()) + private def escape(ch: Char): String = ch match { + case '.' | '$' | '^' | '\\' => "\\" + ch + case _ => "" + ch + } + + @throws(classOf[java.util.regex.PatternSyntaxException]) + def split(separator: Char): Array[String] = self.split(escape(separator)) + + @throws(classOf[java.util.regex.PatternSyntaxException]) + def split(separators: Array[Char]): Array[String] = { + val re = separators.foldLeft("[")(_+_) + "]" + self.split(re) + } def toByte: Byte = java.lang.Byte.parseByte(self) def toShort: Short = java.lang.Short.parseShort(self) |