我一直在努力寻找以下场景的解决方案,
我有以下多维数组,
String [][] a1 ={{ New1 , d1, e1 },{ New2 , d2, e2 },{ New3 , d2, e1 },};
String [][] b1 ={{ d1, Re1 },{ d2, Re2 },};
String [][] c1 ={{ e1, 1 },{ e2, 2 },};
我想将字符串数组a1中的内容替换为来自字符串b1和c1的适当标识符,并应获得以下输出,
String [][] new ={{ New1 , Re1, 1 },{ New2 , Re2, 2 },{ New3 , Re2, 1 },};
对于b1
和c1
,最简单的事情可能是使用Map
而不是String[][]
。您可以这样构建映射:
Map<String, String> b1Map = new HashMap<String, String>();
for (String[] entry : b1) {
b1Map.put(entry[0], entry[1]);
}
// similarly for c1
(或者,您可以直接构建映射,而不是首先构建b1
和c1
数组。)然后你可以这样做:
for (String[] item : a1) {
item[1] = b1Map.get(item[1]);
item[2] = c1Map.get(item[2]);
}
如果您不想使用集合或者您需要在不使用集合的情况下解决它,您可以执行以下代码,通过处理数组
来解决您的需求for(int i=0;i<a1.length;i++){
for(int j=0;j<b1.length;j++){
if(b1[j][0].equals(a1[i][1])){
a1[i][1]=b1[j][1];
}
}
for(int j=0;j<c1.length;j++){
if(c1[j][0].equals(a1[i][2])){
a1[i][2]=c1[j][1];
}
}
}