Usando a biblioteca JEP para analisar e avaliar expressões matemáticas

O que é JEP?

JEP é uma biblioteca para linguagem Java da empresa Singular Systems, capaz de analisar e avaliar expressões matemáticas. Com está biblioteca você pode inserir uma fórmula qualquer(matemática,booleana etc) como uma string, e verificar e avaliar esta formula. Jep suporta variáveis definidas pelo usuário, constantes e funções. Já estão incluídas uma série de funções matemáticas e constantes.

Recursos

  • Tamanho pequeno (apenas 260KB como arquivo jar)
  • Avaliação rápida
  • Alta precisão usando BigDecimals
  • Inclui funções matemáticas e operadores
  • Suporta expressões booleanas
  • Arquitetura extensível e configurável
  • Números Support for strings, vetores e complexo
  • Apoio para a multiplicação implícita
  • Permite declarar ou não variáveis
  • Compatível com Java 1.5 ou superior
  • Suporta caracteres Unicode
  • Documentação extensa
  • Inclui JavaCC gramática a partir da qual as principais classes são geradas

1º Passo: Download da biblioteca: http://www.singularsys.com/jep/download-form.php (Versão 2.4.1 GPL)

2º Passo: Após o download da biblioteca, crie um novo projeto na IDE de preferência e inclua o arquivo jep-x.x.x.jar no seu projeto.

3º Passo: Criar uma classe Test.java e insira o seguinte código:

Experimente outras expressões na entrada do método parseExpression!

4º Passo: Criar expressões com variáveis

Faça alguns pequenas modificações na classe Teste.java para poder utilizar variáveis:

5º Passo: Acesse o Manual da Singular Systems aqui e veja as demais funcionalidades!

Dicas:

1ª – Operadores que podem ser utilizados

2ª – Multiplicação Implícita

Multiplicação implícita permite expressões tais como “2 x” deve ser interpretado como “2 * x”. Note-se que um espaço é necessário entre duas variáveis para que possam ser interpretadas como sendo multiplicadas.

Você pode ativar a opção de multiplicação implícita com setImplicitMul(true). A configuração padrão é a multiplicação true implícita permitido).

Esta biblioteca possui muitas outras funcionalidades que não foram abordadas aqui, utilize o site da JEP e os exemplos contidos no pacote baixado para explorar as demais funcionalidades!

Abraços!

Deixar uma resposta