public boolean calcularStringValidaAFD(String string) {
        Estado estadoAtual = this.estadoInicial;
        for (int i = 0; i < string.length(); i++) {
            String carac = String.valueOf(string.charAt(i));
            for (Iterator<FuncaoTransicao> it = estadoAtual.getFuncoesTransicao().iterator(); it.hasNext();) {
                FuncaoTransicao funcaoTransicao = it.next();
                if (carac.equalsIgnoreCase(funcaoTransicao.getCaractere().getCaractere())) {
                    estadoAtual = funcaoTransicao.getResultado();
                } else if (funcaoTransicao.getCaractere().getCaractere().equalsIgnoreCase(Caractere.STRING_VAZIA.getCaractere())) {
                    estadoAtual = funcaoTransicao.getResultado();
                    i--;
                }
            }
        }
        if (estadoAtual.isEstadoFinal()) {
            return true;
        }
        return false;
    }