Skip to content
Related Articles

Related Articles

Improve Article

Scala | StringContext

  • Last Updated : 13 Jul, 2021

StringContext is a class that is utilized in string interpolation, which permits the end users to insert the variables references without any intermediary in the processed String literals. This class supplies raw, s, and f methods by default as interpolators. The Linear Supertypes here are Serializable, java.io.Serializable, Product, Equals, AnyRef, and Any
 

  • An example of Using the available s-method as interpolator. 
    Example : 
     

Scala




// Scala program of the
// StringContext
 
// Creating object
object Main
{
 
    // Main method
    def main(args: Array[String])
    {
         
        // Assigning values
        val name = "GeeksforGeeks"
        val articles = 32
 
        // Applying StringContext with
        // s-method
        val result = StringContext("I have written ",
                    " articles on ", ".").s(articles, name)
 
        // Displays output
        println(result)
 
    }
}
  •  
Output : 
I have written 32 articles on GeeksforGeeks.

 

  • Here, the StringContext.s method is utilized to extract the constant parts, translates the escape sequences contained and adds them with the values of the stated expression arguments. 
    The output here is returned like given below: 
     
"I have written " + (articles) + " articles on " + (name) + "."
  • Where, the variables articles and name are replaced by their values. 
     
  • Creating our own interpolator : In order to supply our own String interpolator, We need to produce an implicit class that will attach a method to the StringContext class. 
    Example : 
     

Scala




// Scala program of StringContext
// for creating our own string
// interpolator
 
// Creating object
object Main
{
 
// Main method
def main(args: Array[String])
{
    // Using implicit class with
    // StringContext
    implicit class Reverse (val x : StringContext)
    {
     
        // Defining a method
        def revrs (args : Any*) : String =
        {
     
            // Applying s-method
            val result = x.s(args : _*)
     
            // Applying reverse method
            result.reverse
        }
    }
 
    // Assigning values
    val value = "GeeksforGeeks"
 
    // Displays reverse of the
    // stated string
    println (revrs"$value")
}
}
  •  
Output : 
skeeGrofskeeG

 

  • Here, the defined method revrs passes each of its arguments to the s-method and then prints the reverse of the string stated. 
    Note : reverse is a function used here in order to reverse the string given. 
     

 




My Personal Notes arrow_drop_up
Recommended Articles
Page :