Ajuda com Álgebra Booleana

Crie um método iterativo que recebe uma string contendo uma expressão
booleana e o valor de suas entradas e retorna um booleano indicando se a expressão é verdadeira
ou falsa. Cada string de entrada é composta por um número inteiro n indicando o número de
entradas da expressão booleana corrente. Em seguida, a string contém n valores binários (um
para cada entrada) e a expressão booleana.

Eu não tenho a mínima idéia de como começar, alguma luz?

Veja se o código abaixo pode te ajudar.

`import java.util.Scanner;

public class Principal {

static private boolean getExp(String expressao, String valor1, String valor2, String resultado) {

	boolean r = false;
	if (expressao.contains("+")) {
		if (valor1.equals(valor2) && valor1.equals("0")) {
			r = (resultado.equals("0") ? true : false);
		} else if (valor1.equals(valor2) && valor1.equals("1")) {
			r = (resultado.equals("1") ? true : false);
		} else {
			r = (resultado.equals("1") ? true : false);
		}
	} else if (expressao.contains(".")) {
		if (valor1.equals(valor2) && valor1.equals("0")) {
			r = (resultado.equals("0") ? true : false);
		} else if (valor1.equals(valor2) && valor1.equals("1")) {
			r = (resultado.equals("1") ? true : false);
		} else {
			r = (resultado.equals("0") ? true : false);
		}
	}

	return r;
}

public static void main(String[] args) {

	Scanner in = new Scanner(System.in);

	System.out.println("Digite uma Expressão:");
	String exp = in.nextLine();

	System.out.println("Digite um valor Booleano:");
	String valor1 = in.nextLine();

	System.out.println("Digite um valor Booleano:");
	String valor2 = in.nextLine();

	System.out.println("Digite o resultado:");
	String resultado = in.nextLine();

	if (getExp(exp, valor1, valor2, resultado)) {
		System.out.println(exp + " é verdadeiro");
	} else {
		System.out.println(exp + " é falso");
	}

	in.close();
}

}
`