자바:수학 공식을 입력, 저장 및 평가할 수 있는 도구가 있습니까?

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

  •  03-07-2019
  •  | 
  •  

문제

아주 초보적인 것조차도 괜찮습니다.x+1과 같은 것을 입력하고 평가하는 것과 같습니다. 여기서 x는 제가 지정하는 변수입니다.

나는 각 수식에 문자열을 사용하고 이를 구문 분석하기 위한 정규식 등을 사용하여 내 자신을 작성하려고 생각하고 있었지만 내 목표는 가능한 한 게으른 것이고 다른 옵션(특히 공식적인 옵션이 있는 경우)이라고 가정해 보겠습니다. ), 대신 먼저 그것을 사용해 보고 싶습니다.

세상에 이런 일을 하는 게 있나요?

도움이 되었습니까?

해결책

당신은 사용에 대해 생각할 수 있습니다 스크립팅 Java 6. 참조 JDK에는 JavaScript 구현이 제공되며 다른 언어도 연결할 수 있습니다.

다른 팁

다음 라이브러리를 알고 있습니다.

나는 사용했다 Jep 몇 년 전 성공으로 여전히 적극적으로 개발 된 것 같습니다. 나는 그들이 당시에 더 허용되는 라이센스를 가지고 있다고 생각하지만, 정확한 요구와 기술에 따라 직접 코딩하는 것보다 저렴할 것입니다.

나는 Lex/YACC의 학습 예제로 정확하게 이것을 수행하기 위해 Java 라이브러리를 만들었습니다. 그것은 더 큰 프로젝트에 통합되어 잘 작동하는 것 같습니다. 더 큰 프로젝트를 다시 시작해야했고 위의 조언을 따르고 Java 스크립팅 엔진을 사용했습니다.

당신은 시도 할 수 있습니다 libformula, OpenDocument의 OpenFormula 표준을 기반으로하는 공식 evluation 라이브러리.

OpenFormula는 스프레드 시트 응용 프로그램을 위해 작성되었으며 Excel-Formulas에 가까운 구문을 사용합니다. 더 많은 정보는 다음에 있습니다 펜타 호위

견본:

=[x]+1

체크 아웃 할 수 있습니다 Exp4J 내가 아래에서 발표 한 아파치 라이센스 2.0. Dijkstra의 분로 된 야드 알고리즘을 구현하고 다음과 같은 다변량 기능과 잘 어울립니다. f(x,foo)=log(foo^(x^-1))

일부는 새로운 도구에 관심이있을 수 있습니다 formula4j.

상업적이므로 모든 사람을위한 것은 아닙니다.

아마도 MathML?

MathML은 웹 페이지에 수학적 표현을 포함하는 데 필요한 기반을 제공하는 기계 대 기계 통신의 ​​기초로 수학을 설명하기 위한 저수준 사양입니다.이는 과학 및 기술에 대한 출판 작업 흐름과 소프트웨어로 수학을 처리해야 하는 모든 곳에서 중요합니다.예를 들어 새 버전에서는 수학 접근성이 향상되고 오른쪽에서 왼쪽으로 작성된 언어의 공식이 향상되었습니다.커뮤니티가 7년간의 경험을 갖고 있기 때문에 기본 마크업은 동일하게 유지됩니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top