iOS造轮子-数字金额每隔3位用逗号隔开(Swift实现)
生活随笔
收集整理的這篇文章主要介紹了
iOS造轮子-数字金额每隔3位用逗号隔开(Swift实现)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
概要
- 背景概述
- Swift 代碼實現
- 圖示代碼執行原理
- 算法復雜度分析
背景概述
金融類App不可避免的需要展示金額信息,如¥12345678元,但當金額數值較大時,將一整串的金額顯示在用戶面前顯然不夠友好,所以業內通用做法是每隔3位添加一逗號,即顯示成¥12,45,678元,極大地提升了用戶體驗。
Swift 代碼實現
/*** 將字符串每隔數位用分割符隔開** @param source 目標字符串* @param gap 相隔位數,默認為3* @param gap 分割符,默認為逗號* @return 用指定分隔符每隔指定位數隔開的字符串**/ func showInComma(source: String, gap: Int=3, seperator: Character=",") -> String {var temp = source/* 獲取目標字符串的長度 */let count = temp.count/* 計算需要插入的【分割符】數 */let sepNum = count / gap/* 若計算得出的【分割符】數小于1,則無需插入 */guard sepNum >= 1 else {return temp}/* 插入【分割符】 */for i in 1...sepNum {/* 計算【分割符】插入的位置 */let index = count - gap * i/* 若計算得出的【分隔符】的位置等于0,則說明目標字符串的長度為【分割位】的整數倍,如將【123456】分割成【123,456】,此時如果再插入【分割符】,則會變成【,123,456】 */guard index != 0 else {break}/* 執行插入【分割符】 */temp.insert(seperator, at: temp.index(temp.startIndex, offsetBy: index))}return temp }//測試調用 print(showInComma(source: "1234567")) //輸出1,234,567 print(showInComma(source: "1234567", gap: 4, seperator: "#")) //輸出123#4567圖示代碼執行原理
算法復雜度分析
- 本案通過逗號每隔3位分隔字符串,換一個角度考慮,其實就是從字符串尾部每隔3位插入一個逗號,自然的,我們可以借鑒直接插入排序的思想。
- 代碼分析可知,上述方法主要耗時點在于插入分割符時其他元素的移動,因此時間復雜度為0(n)。
總結
以上是生活随笔為你收集整理的iOS造轮子-数字金额每隔3位用逗号隔开(Swift实现)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 闪迪u盘不能识别好办法_闪迪u盘无法识别
- 下一篇: 爬虫模拟对“有道在线翻译”发送请求(请求