我正在尝试转换高度(厘米)我的代码效果很好,当我有高度时,例如: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
已经过了。在这种情况下,任何人都可以帮助我。
答案 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;
}