Java: Existe uma ferramenta disponível que pode me permitir a entrada, armazenar e avaliar fórmulas matemáticas?

StackOverflow https://stackoverflow.com/questions/402833

  •  03-07-2019
  •  | 
  •  

Pergunta

Mesmo algo muito rudimentar é bom. Como entrar e avaliar algo como x + 1, onde x é uma variável recebo para especificar.

Eu estava pensando em escrever meu próprio usando cordas para cada fórmula, regex para analisar los, etc., mas vamos supor que o meu objetivo é ser tão preguiçoso como eu posso possivelmente se safar, e que, se não há outra opção (especialmente um formal), eu prefiro tentar usar isso em vez disso, pela primeira vez.

Existe alguma coisa lá fora que faz algo assim?

Foi útil?

Solução

Você pode pensar em usar scripting de Java 6. A referência JDK vem com uma implementação JavaScript, e você pode conectar em outros idiomas também.

Outras dicas

Eu sei que as seguintes bibliotecas:

Eu usei JEP com sucesso um par de anos atrás e ele ainda parece ser desenvolvido ativamente. Eu acredito que eles tiveram uma volta de licença mais permissiva, naqueles dias, mas é provavelmente mais barato do que a codificação-lo sozinho (dependendo de suas necessidades e habilidades exatas).

Eu construí uma biblioteca java para fazer exatamente isso como um exemplo de aprendizagem para Lex / YACC, para mim. Foi incorporado em um projeto maior, onde ele parece funcionar bem. Se eu fosse para iniciar o projeto maior de novo, eu segui o conselho acima e usar o mecanismo de script Java.

Você poderia tentar LibFormula , uma biblioteca fórmula eavluation que é baseado no padrão OpenFormula do OpenDocument.

OpenFormula foi escrito para aplicativos de planilha e usa uma sintaxe perto de Excel-fórmulas. Mais informações podem ser encontradas no Pentaho-Wiki

Amostra:

=[x]+1

Você pode verificar exp4j que eu liberado sob o licença Apache 2.0 . ele implementa manobras algoritmo quintal de Dijkstra, e funciona bem com funções multivariáveis ??como f(x,foo)=log(foo^(x^-1))

Alguns podem estar interessado em uma nova ferramenta chamada formula4j .

É comercial, por isso não é para todos.

MathML ?

MathML é uma especificação de baixo nível para descrever a matemática como base para comunicação máquina a máquina que fornece uma base muito necessária para a inclusão de expressões matemáticas em páginas da Web. Também é importante na publicação de fluxos de trabalho para a ciência e tecnologia e onde quer que a matemática tem de ser tratado pelo software. A nova versão traz, por exemplo, melhorias para a acessibilidade da matemática, e para fórmulas em idiomas escritos da direita para a esquerda. A marcação básica permanece a mesma, como a comunidade tem sete anos de experiência com ele.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top