diff options
-rw-r--r-- | src/library/scala/CharSequence.scala | 17 | ||||
-rw-r--r-- | src/library/scala/runtime/RichString.scala | 6 |
2 files changed, 23 insertions, 0 deletions
diff --git a/src/library/scala/CharSequence.scala b/src/library/scala/CharSequence.scala index da776256a6..651650471c 100644 --- a/src/library/scala/CharSequence.scala +++ b/src/library/scala/CharSequence.scala @@ -114,6 +114,17 @@ trait CharSequence extends java.lang.CharSequence with Seq[Char] { * @return The resulting string */ def replaceFirst(regex: Regex, replacement: String): String = regex replaceFirstIn (this, replacement) + + def toArray: Array[Char] = { + val len = length + val result = new Array[Char](len) + var i = 0 + while (i < len) { + result(i) = charAt(i) + i += 1 + } + result + } } /** The CharSequence object defines variance implementations of character sequences @@ -150,6 +161,12 @@ object CharSequence { def subSequence(_start: Int, _end: Int) = new AsArray(source, start + _start, start + _end) + override def toArray: Array[Char] = { + val result = new Array[Char](length) + compat.Platform.arraycopy(source, start, result, 0, length) + result + } + override def toString = new String(source, start, end - start) } } diff --git a/src/library/scala/runtime/RichString.scala b/src/library/scala/runtime/RichString.scala index 9c7facd1a7..192cf62ebb 100644 --- a/src/library/scala/runtime/RichString.scala +++ b/src/library/scala/runtime/RichString.scala @@ -219,6 +219,12 @@ final class RichString(val self: String) extends Proxy with CharSequence with Ra def toLong: Long = java.lang.Long.parseLong(self) def toFloat: Float = java.lang.Float.parseFloat(self) def toDouble: Double = java.lang.Double.parseDouble(self) + + override def toArray: Array[Char] = { + val result = new Array[Char](length) + self.getChars(0, length, result, 0) + result + } } object RichString { |