tl  tr
  Home | Tutorials | Articles | Videos | Products | Tools | Search
Interviews | Open Source | Tag Cloud | Follow Us | Bookmark | Contact   
 Tools and Libs > Commons Lang3 > General > Nested Substitutions

Nested Substitutions 

Apache Commons Lang 3.0 is a java library with lot of utilities and reusable components. This requires the library commons-lang3-3.0.1.jar to be in classpath. The following example shows using StrSubstitutor.setEnableSubstitutionInVariables() API which enables nested variable substitutions. It allows us to evaluate variable names recursively.

File Name  :  
com/bethecoder/tutorials/commons_lang/tests/gen/NestedSubstitutionTest.java 
Author  :  Sudhakar KV
Email  :  [email protected]
   
package com.bethecoder.tutorials.commons_lang.tests.gen;

import java.util.HashMap;
import java.util.Map;

import org.apache.commons.lang3.text.StrSubstitutor;

public class NestedSubstitutionTest {

  /**
   @param args
   */
  public static void main(String[] args) {
      
    Map<String, Object> valueMap = new HashMap<String, Object>();
    valueMap.put("ver_number""2");
    valueMap.put("version""GRD");
    valueMap.put("GRD2""Garuda Version Two");
    
    String template = "Product version : ${${version}${ver_number}}";
    StrSubstitutor sub = new StrSubstitutor(valueMap);
    sub.setEnableSubstitutionInVariables(true);
    System.out.println(sub.replace(template));
  }

}
   

It gives the following output,
Product version : Garuda Version Two



 
  


  
bl  br