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.
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));
}