|
Scala example source code file (String.scala)
The String.scala Scala example source codepackage scalaz package std trait StringInstances { implicit object stringInstance extends Monoid[String] with Show[String] with Equal[String] with Order[String] with IsEmpty[λ[α => String]] { type SA[α] = String def append(f1: String, f2: => String) = f1 + f2 def zero: String = "" override def show(f: String) = '"' + f + '"' def order(x: String, y: String) = Ordering.fromInt(x.compareTo(y)) override def equal(x: String, y: String) = x == y override def equalIsNatural: Boolean = true def empty[A] = zero def plus[A](f1: SA[A], f2: => SA[A]) = f1 + f2 def isEmpty[A](s: SA[A]) = s == "" } } trait StringFunctions { /** * Returns the same String value if the given value is 1 otherwise pluralises this String by appending an "s" unless * this String ends with "y" and not one of ["ay", "ey", "iy", "oy", "uy"] in which case the 'y' character is chopped and "ies" * is appended. */ def plural(s:String, n: Long): String = if(n == 1L) s else if((s endsWith "y") && (List("ay", "ey","iy", "oy", "uy") forall (!s.endsWith(_)))) s.take(s.length - 1) + "ies" else s + "s" /** * Constructs a non-empty list with the value if it is not empty, otherwise, throws an error. */ def charsNel(s:String) : Option[NonEmptyList[Char]] = list.toNel(s.toList) /** * Constructs a non-empty list with the given string if it is not empty, otherwise, returns the second argument. */ def charsNel(s:String, e: => NonEmptyList[Char]) : NonEmptyList[Char] = charsNel(s) getOrElse e // Parsing functions. def parseBoolean(s:String): Validation[IllegalArgumentException, Boolean] = Validation.fromTryCatchThrowable[Boolean, IllegalArgumentException](s.toBoolean) def parseByte(s:String): Validation[NumberFormatException, Byte] = Validation.fromTryCatchThrowable[Byte, NumberFormatException](s.toByte) def parseShort(s:String): Validation[NumberFormatException, Short] = Validation.fromTryCatchThrowable[Short, NumberFormatException](s.toShort) def parseInt(s:String): Validation[NumberFormatException, Int] = Validation.fromTryCatchThrowable[Int, NumberFormatException](s.toInt) def parseLong(s:String): Validation[NumberFormatException, Long] = Validation.fromTryCatchThrowable[Long, NumberFormatException](s.toLong) def parseFloat(s:String): Validation[NumberFormatException, Float] = Validation.fromTryCatchThrowable[Float, NumberFormatException](s.toFloat) def parseDouble(s:String): Validation[NumberFormatException, Double] = Validation.fromTryCatchThrowable[Double, NumberFormatException](s.toDouble) def parseBigInt(s:String): Validation[NumberFormatException, BigInt] = Validation.fromTryCatchThrowable[BigInt, NumberFormatException](BigInt(s)) def parseBigDecimal(s:String): Validation[NumberFormatException, BigDecimal] = Validation.fromTryCatchThrowable[BigDecimal, NumberFormatException](BigDecimal(s)) } object string extends StringInstances with StringFunctions { object stringSyntax extends scalaz.syntax.std.ToStringOps } Other Scala examples (source code examples)Here is a short list of links related to this Scala String.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.