public class MergeMatrix {
public static void main(String[] args) {
char[][] mat1 = {{'0','0','0','0'},{'0','0','0','0'},{'a','0','e','0'},{'v','n','0','0'}};
System.out.println("Matriz 1");
printMatrix(mat1);
char[][] mat2 = {{'*','*','0','0'},{'*','0','0','0'},{'0','*','0','0'},{'0','0','0','0'}};
System.out.println("Matriz 2");
printMatrix(mat2);
char[][] matMerged = mergeMatrix(mat1, mat2);
System.out.println("Merge");
printMatrix(matMerged);
}
private static char[][] mergeMatrix(char[][] mat1, char[][] mat2) {
char[][] matMerged = new char[mat1.length][mat1[0].length];
final int ZERO = '0';
int result = 0;
for(int i = 0 ; i < mat1.length ; i++) {
for(int j = 0 ; j < mat1[i].length ; j++) {
result = 0;
if(ZERO != mat1[i][j])
result |= mat1[i][j];
if(ZERO != mat2[i][j])
result |= mat2[i][j];
matMerged[i][j] = (0==result) ? '0' : (char)result;
}
}
return matMerged;
}
private static void printMatrix(char[][] mat) {
for(int i = 0 ; i < mat.length ; i++) {
for(int j = 0 ; j < mat[i].length ; j++) {
System.out.print(mat[i][j]+" ");
}
System.out.println();
}
}
}