You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Swift遍历hh:mm:ss:ms格式时间字符串移除无效零段简化显示

实现思路

你的核心需求是按时间分段处理字符串,而非逐个字符过滤,正确步骤如下:

  • 首先将时间字符串按冒号分割为独立的时间分段数组
  • 从数组头部移除所有连续的00分段,直到遇到第一个非00分段
  • 从数组尾部移除所有连续的00分段,直到遇到第一个非00分段
  • 剩余分段用冒号拼接即可得到目标结果
完整可运行代码
var gTimeString = "00:25:30:00"
// 按冒号分割为分段数组
var timeComponents = gTimeString.components(separatedBy: ":")

// 移除头部连续的00分段
while !timeComponents.isEmpty, timeComponents.first == "00" {
    timeComponents.removeFirst()
}

// 移除尾部连续的00分段
while !timeComponents.isEmpty, timeComponents.last == "00" {
    timeComponents.removeLast()
}

// 拼接为最终字符串
let gTimeStringReduced = timeComponents.joined(separator: ":")

print(gTimeStringReduced) 
// 输入为00:25:30:00时输出25:30,输入为00:25:00:30时输出25:00:30
原有代码问题说明

你之前的代码错误是因为没有按分段规则处理,而是直接过滤所有0字符,会误删中间合法分段里的0,同时固定删除最后一个字符的逻辑也没有匹配业务规则,自然无法得到正确结果。


内容的提问来源于stack exchange,提问作者Chris

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.04 20:57:05