0
我正在编写一个程序,转换某些单位,我不断遇到错误。我的程序有4种方法(一种用于原始单元,一种用于转换为新单元,另一种用于转换&单元用于多少单元),如你所知,每种方法都被正确写入。当我运行它时,我得到了“未解决的编译问题”的错误。单位转换方法
下面的代码:
public static String getUnitFrom(){
String original = "";
final String OZ = "oz";
final String LB = "lb";
final String IN = "in";
final String FT = "ft";
switch(original){
case OZ:
original = "oz";
break;
case LB:
original = "lb";
break;
case IN:
original = "in";
break;
case FT:
original = "ft";
break;
default:
System.out.println("Invalid input.");
}
return original;
}
public static String getUnitTo(String conversionFromUnit){
String conversionFromUnit = "";
final String G = "g";
final String KG = "kg";
final String MM = "mm";
final String CM = "cm";
final String M = "m";
if(getUnitFrom().equals("oz") || getUnitFrom().equals("lb")){
switch(conversionFromUnit){
case G:
conversionFromUnit = "g";
break;
case KG:
conversionFromUnit = "kg";
break;
default:
System.out.println("Invalid conversion!");
}
}
else if (getUnitFrom().equals("in") || getUnitFrom().equals("ft")){
switch (conversionFromUnit){
case MM:
conversionFromUnit = "mm";
break;
case CM:
conversionFromUnit = "cm";
break;
case M:
conversionFromUnit = "m";
break;
default:
System.out.println("Invalid conversion!");
}
}
return conversionFromUnit;
}
public static double getValue(){
double value = 0;
if(getUnitFrom() > 0 && getUnitTo() > 0){
value = input.nextDouble();
}
}
public static double getConversionRate(String from, String to){
double rate = 0;
if(from.equals(getUnitFrom("oz")) && to.equals(getUnitTo("g"))){
rate = 28.3;
}
else if(from.equals(getUnitFrom("oz")) && to.equals(getUnitTo("kg"))){
rate = 0.028;
}
else if(from.equals(getUnitFrom("lb")) && to.equals(getUnitTo("g"))){
rate = 453.6;
}
else if(from.equals(getUnitFrom("lb")) && to.equals(getUnitTo("kg"))){
rate = 0.045;
}
if(from.equals(getUnitFrom("in")) && to.equals(getUnitTo("mm"))){
rate = 25.4;
}
else if(from.equals(getUnitFrom("in")) && to.equals(getUnitTo("cm"))){
rate = 2.54;
}
else if(from.equals(getUnitFrom("in")) && to.equals(getUnitTo("m"))){
rate = 0.0254;
}
else if(from.equals(getUnitFrom("ft")) && to.equals(getUnitTo("mm"))){
rate = 304.8;
}
else if(from.equals(getUnitFrom("ft")) && to.equals(getUnitFrom("cm"))){
rate = 30.48;
}
else if(from.equals(getUnitFrom("ft")) && to.equals(getUnitFrom("m"))){
rate = 0.3048;
}
return rate;
}
public static void main(String[] args) {
String convertFrom = getUnitFrom();
String convertTo = getUnitTo();
double valueOf = getValue();
System.out.println(getValue() + " " + getUnitFrom() + " = " + (getValue() * getConversionRate()) + " " + getUnitTo());
}
public static Scanner input = new Scanner(System.in);