在Java中将高度转换为厘米

时间:2016-02-23 11:01:05

标签: java

我正在尝试转换高度(厘米)我的代码效果很好,当我有高度时,例如:4'5'' - 134cm所以我使用split("'")拆分文本 它工作正常。

public double convertToCMs(String str){
    double c = 0;
    String[] x = str.split("'");
    try{
        c = (Integer.parseInt(x[0].trim()) * 12 + Integer.parseInt(x[1].trim().split("\"")[0])) * 2.54;
    }catch(Exception e){
        e.printStackTrace();
    }
    return c;
}

但是当我有6' - 182cm这样的高度时会出现问题,因为x[1] -182已经过了。在这种情况下,任何人都可以帮助我。

4 个答案:

答案 0 :(得分:0)

String[] x=str.trim().split("'");  //newly added.
if (x.length > 2 ) your code;
else c=(Integer.parseInt(x[0].trim())*12)*2.54;

答案 1 :(得分:0)

您可以检查阵列的长度。如果输入高度为6',那么阵列中只有一个元素。测试此代码并且它正在运行。

public double convertToCMs(String str){
double c=0;
String[] x=str.split("'");
try{

if(x.length > 1)
{
    c=(Integer.parseInt(x[0].trim())*12+Integer.parseInt(x[1].trim().split("\"")[0]))*2.54;
}
else
{
    c=(Integer.parseInt(x[0].trim())*12)*2.54;
}

}catch(Exception e){
e.printStackTrace();
}
return c;
}

答案 2 :(得分:0)

public class SO35575713 {
    public static void main(String[] args) {
        System.out.println(convertToCMs("6'"));
    }

    public static double convertToCMs(String str){
        double c = 0;
        String[] x = str.split("'", 2);

        if(x[1].trim().isEmpty()){
            x[1] = "0";
        }

        try{
            c = (Integer.parseInt(x[0].trim()) * 12 + Integer.parseInt(x[1].trim().split("\"")[0])) * 2.54;
        }catch(Exception e){
            e.printStackTrace();
        }
        return c;
    }
}

答案 3 :(得分:0)

试试这个:

public static double convertToCMs(String str)
{
    double c = 0;
    double d = 0;
    try
    {
        String[] x = str.split(" - ")[0].split("'");
        c = Integer.parseInt(x[0].trim()) * 12;
        if (x.length > 1)
        {
            c = c + Integer.parseInt(x[1].trim().split("\"")[0]);
        }
        d = c * 2.54;
    }
    catch (Exception e)
    {
        e.printStackTrace();
    }
    return d;
}