将“15:45”之类的字符串转换为15.45之类的双字符串

时间:2013-11-03 07:31:29

标签: java string double

我正在努力弄清楚如何将像“15:45”这样的字符串转换成像15.45这样的双字符串, 我之前遇到过类似.toString()的方法,并且正在查找类似的方法,以便将字符串转换为double,但是有几个问题,我需要弄清楚如何使:成为一个将双点.插入的地方。

这是我想要使用的地方。

if(westOne > (takeOff.firstInQueue().time)) {}

目前westOnedouble,其中takeOff.firstInQueue().time是一个像"16.15"这样的字符串我假设我需要创建自己的方法才能得到这个工作,所以我可以在结束时应用它?

3 个答案:

答案 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.50之后的5}。

如果你想要的只是添加5分钟,你可以使用SimpleDateFormatCalendar

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