是否可以创建一个String类型的数组并将其提升为double用于计算?

时间:2018-06-05 05:47:53

标签: java arrays

我想用Java创建一个数组,它接收一个人的进入和超时时间并计算总小时数。是否可以使用数组执行此操作?并且,如果是这样,我如何将字符串(在这种情况下为time-in和time-out)提升为要计算的双精度数?

2 个答案:

答案 0 :(得分:0)

假设你的字符串是这样的 1.0,4.0 你可以使用string.split(“,”)和Double.parseDouble从你的字符串中获取单个双打并使用它们。是的,然后你可以将它们添加到一个新的数组中,但不是,你不能将现有数组的类型从String更改为double - 不需要这样做。

答案 1 :(得分:0)

您似乎想要计算给定日期之间的持续时间。我建议使用Java的Duration类。

但首先,您需要将字符串转换为日期对象,以便可以使用持续时间进行计算。

示例:

String[] dates = new String[] {
  "2018-06-05 09:00:00",
  "2018-06-05 18:00:00"
};

var formatter = DateTimeFormat.ofPattern("yyyy-MM- HH:mm:ss");
var convertedTime = Arrays.stream(dates)
  .map(dateString -> LocalDateTime.parse(dateString, formatter))
  .collect(Collectors.toList());

var start = convertedTime.get(0);
var end = convertedTime.get(1);
var duration = Duration.between(start, end);

System.out.println(duration.toHours() + " hours has passed.");