Ler chamadas de métodos que estão em um arquivo txt em Java

6 respostas
L

Estou fazendo um trabalho e o professor exige que os métodos sejam chamados com um arquivo txt, por exemplo, o meu arquivo txt irá conter:

conjunto.add(Rafael);

conjunto.add(Pedro);

conjunto.add(Chico);

conjunto.add(Paulo);

conjunto.remove(Jose);

Como fazer para o java interpretar esses comandos com eles dentro de um arquivo txt?

6 Respostas

D

Depende do que vc sabe, eu primeiramente pensaria na estrutura de dados.

Analisando conjunto.add(“Rafael”);, o que é conjunto? O que é add? o que é "Rafael"? O que é conjunto.add(“Rafael”);? Só existe conjunto? …

Exemplo:

// conjunto.add(Rafael);
class Instrução {
  Variavel variável; // conjunto
  Método método; // add
  Parâmetros parâmetros; // Rafael
  public void executar() {
    Variável resultado = método.executar(variável, parametros);
    // O que fazer com o resultado?
    print(resultado);
  }
}

Depois para testar:

void main() {
  Intrucao i = new Instrução(new Variável, new Método, new Parametros);
  i.executar();
}

Eu não começaria lendo arquivo.

L

Conjunto ai é uma lista de uma tabela hash, add é o método para inserir uma String na posição da lista da tabela, “Rafael” é a string.

D

O que postei foi um exemplo de como eu começaria fazendo, é vc quem deve responder aquelas perguntas para vc, se vc não entende o problema, então não tem como vc fazer o exercício.

Quando analisei aquilo, conjunto é só um nome de uma variável, essa foi minha resposta, se a sua é de “uma lista de uma tabela hash”, então:

// conjunto.add(“Rafael”);
class Instrução {
  HashSet conjunto; // conjunto
  Método método; // add
  String parâmetro; // “Rafael”
  public void executar() {
    Variável resultado = método.executar(conjunto, parâmetro);
    // O que fazer com o resultado?
    print(resultado);
  }
}

class Método {
  void executar(conjunto, parametro) {
    if (this.nome.equals("add")) conjunto.add(parametro).
  }
}

Isso não significa que vc ou eu estejamos errados, são interpretações diferentes.

L

Entendi a colocação só não entendi como implementar a partir do arquivo txt que eu tenho que ler

D

No link abaixo no capítulo 16 fala sobre como ler arquivo

staroski

Várias formas de resolver, se você ainda não tem experiência com analisadores léxicos, sintáticos e semânticos, sugiro fazer de uma forma mais simples:

Você vai lendo seu arquivo linha por linha.

Para cada linha lida você verifica:

Se a linha começa com "conjunto.add(" Então

  • O parâmetro está entre "conjunto.add(" e ");"
  • Você gera uma chamada ao conjunto.add(parametro)

Senão Se a linha começa"conjunto.remove(" Então

  • O parâmetro está entre o "conjunto.remove(" e ");"
  • Você gera uma chamada ao conjunto.remove(parametro)

Fim Se

Criado 25 de maio de 2018
Ultima resposta 25 de mai. de 2018
Respostas 6
Participantes 3