Hy我试图绕过制作一个算术表达式解析器的过程,因为从头开始构建它有点讨厌,我也不知道写一个,我们不允许使用其他材料it。我提出了创建一个将代码写入另一个类文件的类的想法,从而绕过了字符串到表达式的评估过程。
public void PrintCode(String filename,String a) {
PrintStream ps = null;
try {
ps = new PrintStream(filename);
} catch (FileNotFoundException ex) {
System.out.println("printWords: File open error: " + filename);
}
ps.println(i);
ps.println(" public int a = "+a + ";\n\n" + " public int geta()\n {\n return a;\n }" +"\n\n}");
ps.close();
}
a是String中的给定表达式。文件名用于例如:expression.java。 另一个奇怪的事情是java可以在代码中计算这些表达式,但是没有内置函数来评估给定的字符串类型表达式。我的问题实际上是这个代码编写在程序完成后保存并且我需要重新加载写完后的类,或者只是在写完后加载它,然后执行geta()方法进行计算。 另一件事是以某种方式从代码重新启动程序并从那一点继续。 我只是一个新手,我们只学习了这个学期的java ..所以如果这里的事情非常错误,我道歉。并提前感谢任何帮助!
编辑:我们没有学习javascript所以我们不能或不允许使用它...抱歉。答案 0 :(得分:0)
我会尝试研究JavaCompiler类。在this文章处获取战利品。
答案 1 :(得分:0)
您可以使用ASM之类的库来编写Java中的字节码,但我的建议是使用ScriptEngine(Java 6+)界面来使用JavaScript或其他一些脚本语言执行你的数学。
我将在帖子上更新我的博客,因为我将在我自己的项目中使用它。当帖子可用时我会回复。