乘以自定义单位

时间:2018-10-31 22:14:47

标签: java class oop object

对于我正在做的事情,我正在创建一个程序来对测量值进行乘除运算。目前,我坚持乘法。我创建了一个名为Measurement的类,它使用一个值和一个单位,因此典型的构造函数是:

  

度量x =新的度量(5,“ in ^ 2”);

当前我的输出是:

  

多:5.0英寸* 3.0英寸= 15.0英寸^ 2

     

马尔特:5.0英寸* 3.0磅= 15.0英寸*磅

     

马尔特:4.0 in ^ 5 * 3.0 in ^ 3 = 12.0 in ^ 5 * in ^ 3

如您所见,前三个输出很好,但是只要我超过4的指数,它就不能乘以两个指数。我也想不出要沿着以下方式相乘:

  

马尔特:5.0英寸^ 2 /磅* 3.0磅= 15英寸^ 2

这是我当前的设置方式:

public Measurement mult(Measurement measure){
        String newUnit="";
        String inUnit = measure.getUnit();
        double script = 1;
        double newVal = 0;
        newVal = measure.getVal()*val;
        if(inUnit.indexOf(un) > -1){
            if(un.charAt(un.length()-1) == inUnit.charAt(inUnit.length()-1))
                newUnit = un+"^2";
            else{
                if (inUnit.contains("^")){
                    int i = inUnit.indexOf("^")+1;
                    script += Double.parseDouble(String.valueOf(inUnit.charAt(i)));
                }
                if(un.contains("^")){
                    int j = inUnit.indexOf("^")+1;

                    script += Double.parseDouble(String.valueOf(un.charAt(j)));
                }
                else
                    script+=0;
                System.out.println(script);
                newUnit = un+"^"+ Integer.toString((int)script);
            }
        }
       else if(inUnit.indexOf(un) == -1)
            newUnit = un+"*"+inUnit;

        Measurement out = new Measurement(newVal, newUnit);
        return out;

}

0 个答案:

没有答案