私は文字列の書式設定に使用する以下の関数を持っています。文字列はこの "PT1H3M20S"のようなもので、1時間3分20秒という意味です。私の関数では、文字列を1:03:20にフォーマットしたいが、うまくいきますが、時には、この "PT1H20S"のような文字列が1時間20秒、関数形式は1:20人々に1分20秒としてそれを読ませる。助言がありますか?文字列の形式の問題 - スウィフト
func formatDuration(videoDuration: String) -> String{
let formattedDuration = videoDuration.replacingOccurrences(of: "PT", with: "").replacingOccurrences(of: "H", with:":").replacingOccurrences(of: "M", with: ":").replacingOccurrences(of: "S", with: "")
let components = formattedDuration.components(separatedBy: ":")
var duration = ""
for component in components {
duration = duration.count > 0 ? duration + ":" : duration
if component.count < 2 {
duration += "0" + component
continue
}
duration += component
}
// instead of 01:10:10, display 1:10:10
if duration.first == "0"{
duration.remove(at: duration.startIndex)
}
return duration
}
はそれを呼び出します。
print(formatDuration(videoDuration: "PT1H15S")
正規表現を使用しますか? – Paulw11