在java中如何选择最接近的匹配字符串

在java中如何选择最接近的匹配字符串,java,string,replace,Java,String,Replace,我有这样的JSON { "mappingData": { "input.data.DT": "Integer", "input.data.DTF": "STRING" } } Functions.test2(Functions.test1(Functions.test3(input.data.DTF),input.data.DT,"string","int"),input.data.DTF) 和这样的嵌套函数 { "mappingDat

我有这样的JSON

{
    "mappingData": {
        "input.data.DT": "Integer",
        "input.data.DTF": "STRING"
    }
}
Functions.test2(Functions.test1(Functions.test3(input.data.DTF),input.data.DT,"string","int"),input.data.DTF)
和这样的嵌套函数

{
    "mappingData": {
        "input.data.DT": "Integer",
        "input.data.DTF": "STRING"
    }
}
Functions.test2(Functions.test1(Functions.test3(input.data.DTF),input.data.DT,"string","int"),input.data.DTF)
现在我想用函数相应位置的值替换mappingdata json或map key中的键。我如何做到这一点,就好像我使用contains和replace,它不会替换为mappingData键input.data.DTF,它类似于input.data.DT,所以replace是不一致的。 我怎样才能做到这一点

预期结果:

Functions.test2(Functions.test1(Functions.test3(STRING),Functions.test2(Functions.test1(Functions.test3(STRING),Integer,"string","int"),STRING),"string","int"),STRING)
JAVA代码:

Map<String, String> mapData = (Map<String, String>) data.get("mappingData");
System.err.println("mapData===>" + mapData);
for (Map.Entry<String, String> entry : map.entrySet()) {
  try {
    String function = entry.getValue();
    //System.out.println("function===="+function);
    if (function.contains("Functions")) {
      for (Entry<String, String> entry1 : mapData.entrySet()) {
        if (function.contains(entry1.getKey())) {
          function = function.replace(entry1.getKey(), entry1.getValue());
        }
      }
    }
  }
}
Map-mapData=(Map)data.get(“mappingData”);
System.err.println(“mapData==>”+mapData);
对于(Map.Entry:Map.entrySet()){
试一试{
字符串函数=entry.getValue();
//System.out.println(“函数==”+函数);
if(function.contains(“函数”)){
对于(条目entry1:mapData.entrySet()){
if(function.contains(entry1.getKey())){
function=function.replace(entry1.getKey(),entry1.getValue());
}
}
}
}
}