Scala | StringContext

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 :

    filter_none

    edit
    close

    play_arrow

    link
    brightness_4
    code

    // 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)
      
        }
    }

    chevron_right

    
    

    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 :

    filter_none

    edit
    close

    play_arrow

    link
    brightness_4
    code

    // Scala program of StringContext 
    // for creating our own string
    // interpolator
      
    // Creating object
    object Main 
      
    // Main method 
    def main(args: Array[String]) 
        // Using impicit 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")
    }

    chevron_right

    
    

    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

Check out this Author's contributed articles.

If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to contribute@geeksforgeeks.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.

Please Improve this article if you find anything incorrect by clicking on the "Improve Article" button below.




Article Tags :

Be the First to upvote.


Please write to us at contribute@geeksforgeeks.org to report any issue with the above content.