|
Scala example source code file (SeqCharSequence.scala)
The SeqCharSequence.scala Scala example source code/* __ *\ ** ________ ___ / / ___ Scala API ** ** / __/ __// _ | / / / _ | (c) 2002-2013, LAMP/EPFL ** ** __\ \/ /__/ __ |/ /__/ __ | http://scala-lang.org/ ** ** /____/\___/_/ |_/____/_/ | | ** ** |/ ** \* */ package scala package runtime import java.util.Arrays.copyOfRange @deprecated("Use Predef.SeqCharSequence", "2.11.0") final class SeqCharSequence(val xs: scala.collection.IndexedSeq[Char]) extends CharSequence { def length: Int = xs.length def charAt(index: Int): Char = xs(index) def subSequence(start: Int, end: Int): CharSequence = new SeqCharSequence(xs.slice(start, end)) override def toString = xs.mkString("") } // Still need this one since the implicit class ArrayCharSequence only converts // a single argument. final class ArrayCharSequence(val xs: Array[Char], start: Int, end: Int) extends CharSequence { // yikes // java.lang.VerifyError: (class: scala/runtime/ArrayCharSequence, method: <init> signature: ([C)V) // Constructor must call super() or this() // // def this(xs: Array[Char]) = this(xs, 0, xs.length) def length: Int = math.max(0, end - start) def charAt(index: Int): Char = { if (0 <= index && index < length) xs(start + index) else throw new ArrayIndexOutOfBoundsException(index) } def subSequence(start0: Int, end0: Int): CharSequence = { if (start0 < 0) throw new ArrayIndexOutOfBoundsException(start0) else if (end0 > length) throw new ArrayIndexOutOfBoundsException(end0) else if (end0 <= start0) new ArrayCharSequence(xs, 0, 0) else { val newlen = end0 - start0 val start1 = start + start0 new ArrayCharSequence(xs, start1, start1 + newlen) } } override def toString = xs drop start take length mkString "" } Other Scala source code examplesHere is a short list of links related to this Scala SeqCharSequence.scala source code file: |
... this post is sponsored by my books ... | |
#1 New Release! |
FP Best Seller |
Copyright 1998-2024 Alvin Alexander, alvinalexander.com
All Rights Reserved.
A percentage of advertising revenue from
pages under the /java/jwarehouse
URI on this website is
paid back to open source projects.