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 + -
显示快捷键?