对于我正在做的事情,我正在创建一个程序来对测量值进行乘除运算。目前,我坚持乘法。我创建了一个名为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;
}