我正在努力弄清楚如何将像“15:45”这样的字符串转换成像15.45这样的双字符串,
我之前遇到过类似.toString()
的方法,并且正在查找类似的方法,以便将字符串转换为double,但是有几个问题,我需要弄清楚如何使:
成为一个将双点.
插入的地方。
这是我想要使用的地方。
if(westOne > (takeOff.firstInQueue().time)) {}
目前westOne
是double
,其中takeOff.firstInQueue().time
是一个像"16.15"
这样的字符串我假设我需要创建自己的方法才能得到这个工作,所以我可以在结束时应用它?
答案 0 :(得分:8)
你可以简单地说:
myDouble = Double.parseDouble(myStr.replace(":", "."));
如果这真的是你想要的,那么这会将:
替换为.
而 String x:y
将是 double x.y
。
修改强>:
如果您想要添加5分钟的时间,可以将0.05
添加到 double 并将其转换回String,但这不是一个很好的方法,因为:
14:55
之类的案件,添加0.05
会导致14.6
。14:45
等添加0.05
的案例会产生14.5
(0
之后的5
}。如果你想要的只是添加5
分钟,你可以使用SimpleDateFormat
和Calendar
:
String myStr = "17:23";
SimpleDateFormat dateFormat = new SimpleDateFormat("HH:mm");
Date date = df.parse(myStr );
Calendar calendar = Calendar.getInstance();
calendar.setTime(date);
calendar.add(Calendar.MINUTE, 5);
myStr = dateFormat.format(calendar.getTime()); //Now myStr will be 17:28
答案 1 :(得分:4)
我认为这会奏效;
String value;
double value1;
value = String.replaceAll(":",".") // Converts the 15:45 to 15.45
value1 = Double.parseDouble(value) // Converts the 15.45 to a double value.
答案 2 :(得分:0)
String timevalue = "15:45";
Double pointvalue = Double.parseDouble(timevalue.replace(':', '.'));
//Not double quote like the previous answer because it takes a char as a parameter and not a string