格式化时间以从计时器中删除不必要的 00



我正在试图清理我的应用计时器,但我很难让它做我想做的事。

有人知道如何格式化h:m:s并删除00?

示例可能会像这样开始:12:34:56(HH:MM:SS)

但是,一旦到达时间00:34:56,请删除其余00,我有点担心性能,这就是为什么我在这里找到更有效的格式化时间,因为这将被称为很多。

String.format("%02d:%02d", m, s).replaceAll("00:","");是明智的选择吗?

谢谢。

使用正则表达式,您可以删除第一部分'00:'使用(仅用于删除HH:mm ::的小时部分SS时间格式)

String.format("%02d:%02d", m, s).replaceAll("^00:","");

^是标记行开始的字符

我认为您只需检查前两个字符即可忽略得更快:

if (timeString.charAt(0) == '0' && timeString.charAt(1) == '0')
   timeString = timeString.substring(3);

我不一定认为这是很棒的代码,但是2个字符检查可能比更大的字符串搜索要快。不过,不是太多了,所以我怀疑这是值得的。

(根据评论进行修复,将== '1'更改为== '0'

您实际上已经回答了自己的问题。只需将您的想法变成代码即可。

您需要的东西:

如果时间少于一小时,则只显示几分钟和几秒钟;否则,显示小时,几分钟和秒。

您的代码应该像口语一样读取:

if (hours < 1) {
    text = String.format("%02d:%02d", minutes, seconds);
} else {
    text = String.format("%02d:%02d:%02d", hours, minutes, seconds);
}

简单,干净,快速且易于对未来的程序员(包括您自己,从现在起一年)来理解。

最新更新