-3

嗨,我试图绕过制作算术表达式解析器的过程,因为从头开始构建它有点困难,而且我也不知道写一个,我们也不允许使用其他材料。我想出了创建一个类的想法,该类将代码写入另一个类文件,从而绕过字符串到表达式的评估过程。

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 中的给定表达式。文件名用于 ex.:表达式.java。另一个奇怪的是java可以在代码中计算这些表达式,但是没有内置函数来评估给定的字符串类型表达式。我的问题实际上是这个代码编写是在程序完成后保存的,我需要重新加载写入后的类,或者写入后加载它然后执行 geta() 方法进行计算。另一件事是以某种方式从代码重新启动程序并从那一点继续。我只是一个新手,我们只在这个学期学习了java..所以如果这里有什么问题,我很抱歉。提前感谢您的帮助!

编辑:我们没有学习 javascript,所以我们不能,或者不允许使用它......对不起。

4

2 回答 2

0

我会尝试调查 JavaCompiler 类。看看这篇文章。

于 2012-12-14T15:34:46.117 回答
0

您可以使用ASM等一些库从 Java 编写字节码,但我的建议是使用ScriptEngine (Java 6+) 接口来使用 JavaScript 或其他一些脚本语言来执行您的数学运算。

我将在我的博客上更新一篇关于此的文章,因为我将在我自己的项目中使用它。当帖子可用时,我会发表评论。

于 2012-12-14T15:37:59.747 回答