gpt4 book ai didi

java - 如何从java中的时间句子中提取分钟数?例如 xx 小时 xx 分钟

转载 作者:行者123 更新时间:2023-12-01 17:55:29 25 4
gpt4 key购买 nike

我知道标题令人困惑,但我想不出更好的标题。

假设我有一个字符串,它可能类似于 ([number] hr(s)) [number] min(s)

例如,1 分钟15 分钟3 小时 50 分钟1 小时 15 分钟 code>、4 小时 1 分钟

如何有效地从此类字符串中提取分钟数?我希望它也考虑到小时,因此 3 小时 50 分钟 将产生 230。我唯一能想到的就是做很多 if 子句并使用正则表达式,但我想知道是否有更有效的方法。

最佳答案

不同的方法为您提供更大的灵 active :

public long getMinutes(String input) {
input = input.toLowerCase()
.replaceAll("mins?", "M")
.replaceAll("hrs?", "H")
.replaceAll("\\s+", "");
Duration d = Duration.parse("PT" + input);
return d.toMinutes();
}

( Working sample on ideone )

示例数据的输出:

1 min: 1
15 mins: 15
3 hrs 50 mins: 230
1 hr 15 mins: 75
4 hrs 1 min: 241

基本思想是将您的输入转换为 Java 的 Duration#parse 支持的字符串。方法( PT<hours>H<minutes>M ),然后让它发挥魔力。你最终会得到 Duration对象提供了以后使用它的各种方法。

请注意,这会打印 230对于 3 hrs 50 mins 。如果您只需要50那么简单的正则表达式将是更简单的方法。

(在生产代码中,我会将各种 replaceAll 调用合并为一个,并将 toLowerCase 替换为不区分大小写的模式匹配,以提高效率。将其明确保留在这里是为了更好的理解。)

关于java - 如何从java中的时间句子中提取分钟数?例如 xx 小时 xx 分钟,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45278271/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com