在java中如何选择最接近的匹配字符串
我有这样的JSON在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
{
"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());
}
}
}
}
}