Для того, что я делаю, я создаю программу для умножения и деления измерений. В настоящее время я застрял на умножении. Я создал класс с именем Measurement, который принимает значение и единицу измерения, поэтому типичный конструктор:
Измерение x = новое измерение (5, "в ^ 2");
В настоящее время мой вывод:
Mult: 5,0 дюйма * 3,0 дюйма = 15,0 дюйма ^ 2
Mult: 5,0 дюйма * 3,0 фунта = 15,0 дюйма * фунта
Mult: 4,0 в ^ 5 * 3,0 в ^ 3 = 12,0 в ^ 5 * в ^ 3
Как видите, первые три выхода хороши, но всякий раз, когда я получаю показатель 4, он не может умножить два показателя. Я также не могу понять, что умножить что-то вроде:
Mult: 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;
}