richstringbuilder.scala

来自「JAVA 语言的函数式编程扩展」· SCALA 代码 · 共 58 行

SCALA
58
字号
/*                     __                                               *\**     ________ ___   / /  ___     Scala API                            ****    / __/ __// _ | / /  / _ |    (c) 2002-2007, LAMP/EPFL             ****  __\ \/ /__/ __ |/ /__/ __ |    http://scala-lang.org/               **** /____/\___/_/ |_/____/_/ | |                                         ****                          |/                                          **\*                                                                      */// $Id: RichStringBuilder.scala 14416 2008-03-19 01:17:25Z mihaylov $package scala.runtimeimport Predef._import scala.collection.mutable.{Buffer,ArrayBuffer}final class RichStringBuilder(val self : StringBuilder) extends RandomAccessSeq.Mutable[Char] with Proxy with Buffer[Char] {  override def length = self.length  override def apply(idx : Int) = self.charAt(idx)  override def mkString = self.toString  override def update(idx : Int, c : Char) = self.setCharAt(idx, c)  override def +=(c: Char): Unit = self append c  override def ++=(iter: Iterable[Char]): Unit = iter match {  case str : RichString => self append str.self  case str : Array[Char] => self append str  case iter => super.++=(iter)  }  override def ++(iter: Iterable[Char]): RichStringBuilder = { this ++= iter; this }  override def ++[B >: Char](that : Iterable[B]) : RandomAccessSeq[B] = {    val buf = new ArrayBuffer[B]    this copyToBuffer buf    that copyToBuffer buf    buf  }    override def insertAll(idx: Int, iter: Iterable[Char]): Unit = iter match {  case str : RichString => self.insert(idx, str)  case str : Array[Char] => self.insert(idx, str)  case iter =>     val i = iter.elements    var jdx = idx    while (i.hasNext) {      self.insert(jdx, i.next)      jdx = jdx + 1    }  }  override def +:(c : Char) = self.insert(0, c)  def ensureSize(size : Int) = self.ensureCapacity(size)  override def remove(idx : Int) = {    val c = self.charAt(idx)    self.deleteCharAt(idx)    c  }  override def clear = self.setLength(0)}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?