我正在试图清理我的应用计时器,但我很难让它做我想做的事。
有人知道如何格式化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);
}
简单,干净,快速且易于对未来的程序员(包括您自己,从现在起一年)来理解。