实施外部公式

时间:2013-01-14 09:57:56

标签: java string integer formula

给出一个带输入的文件:

Formula: m = (y - c) / x
Formula: m = y + c^2

我想在java中实现每个公式来解决m ,这样在这种情况下我最终会得到2个答案。我必须这样做,因为单独编码每个公式对于我需要的所有公式来说都太费时了。

到目前为止,我的代码只是检测并隔离每个公式。为了解决这个问题,我还删除了用户输入。

int y = 8;
int c = 2;
int x = 2;

    try{
       FileInputStream fstream = new FileInputStream("Filename");

        DataInputStream in = new DataInputStream(fstream);
        BufferedReader br = new BufferedReader(new InputStreamReader(in));
        String strLine;

        while((strLine = br.readLine()) != null){
            if(strLine.startsWith("Formula")){
                String standAloneFormula = strLine.replace("Formula: ", "");
                System.out.println(standAloneFormula);
            }
        }
    }
    catch(Exception e){
        System.out.print(e);

我遇到的主要问题是访问代码然后将整数值应用于字符串值。什么是最简单的解决方法,在这种情况下, m

任何想法,链接或相关代码都将受到赞赏。

问候。

1 个答案:

答案 0 :(得分:1)

尝试使用composite pattern为方程创建简单的对象模型。您可以将每个输入行分解为单个表达式,可能包含其他表达式作为操作数。然后,您可以在所有类中定义方法calculate(HashMap<String, Integer> values),其中values只是计算中可能出现的所有变量的定义。通过递归调用该方法,您最终应该得到结果。

您希望支持的每个数学运算需要一个类,例如:加法,减法,否定,......

解析字符串并构造对象层次结构实际上是最困难的任务。使用polish notation或更容易解析的内容会更容易。

总的来说,建议使用更适合解决数学问题的工具而不是尝试自己编写代码。甚至Excel也许可以提供帮助。