Data commit
This commit is contained in:
parent
7387c8f97b
commit
cb5bb5e222
199093 changed files with 3378972 additions and 0 deletions
|
|
@ -0,0 +1,49 @@
|
|||
object StringInterpolation extends App {
|
||||
|
||||
import util.matching.Regex._
|
||||
val size = "little"
|
||||
|
||||
{ // Method I (preferred)
|
||||
// Scala 2.10.0 supports direct string interpolation
|
||||
// by putting "s" at the beginning of the string.
|
||||
println("V2.10+ : " + s"Mary had a $size lamb,")
|
||||
}
|
||||
|
||||
{ // Method II
|
||||
// Pre Scala 2.10 indirect use of Java Class Formatter
|
||||
val originalFormatter = "Mary had a %s lamb,"
|
||||
println("V2.10- 1: " + originalFormatter format size)
|
||||
// Above mentioned is Scala's postfix notation and equivalent for:
|
||||
println("V2.10- 2: " + originalFormatter.format(size))
|
||||
// Also possible
|
||||
printf(("V2.10- 3: " + originalFormatter + '\n').format(size))
|
||||
// All will be expanded to
|
||||
print(("V2.10- 3: " + originalFormatter + '\n').format(size))
|
||||
print((new java.util.Formatter).format("V2.10- 4: " + originalFormatter + '\n', size))
|
||||
}
|
||||
|
||||
{ // Method III
|
||||
// Regular expressions, only for demonstration
|
||||
val extractor = """\$\{([^}]+)\}""".r
|
||||
println((extractor.replaceAllIn("Regex 1: Mary had a ${x} lamb,", "snow white")))
|
||||
|
||||
// RegEx freaking
|
||||
def interpolate(text: String, vars: (String, String)*) =
|
||||
extractor.replaceAllIn(text,
|
||||
_ match { case Groups(v) => vars.toMap.getOrElse(v, "" /*in case nothing provided*/ ) })
|
||||
|
||||
println(interpolate("Regex 2: ${who} had a ${size} ${pet}, ${unknown}",
|
||||
("pet", "lamb"), ("size", "fat"), ("size", "humongous"), ("who", "Mary")))
|
||||
}
|
||||
|
||||
{ // Method IV, not recommended.
|
||||
// Standard API method, search argument (1st ones) supposed to be a regular expression
|
||||
println("Replace1: " + "Mary had a ${x} lamb".replaceAll("""\$\{x\}""", size))
|
||||
// Standard API method, literally, on regular expression
|
||||
println("Replace2: " + "Mary had a ${x} lamb".replaceAllLiterally("${x}", size))
|
||||
}
|
||||
|
||||
{ // Method IV, not recommended.
|
||||
println("Split : " + "Mary had a ${x} lamb.".split("""\$\{([^}]+)\}""").mkString(size))
|
||||
}
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue