首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >UITextField中字符间的间隔

UITextField中字符间的间隔
EN

Stack Overflow用户
提问于 2021-02-23 16:31:23
回答 1查看 568关注 0票数 0

如何在字符之间添加空格?(百亿,百万)例如

550

五千五百

55 500

555 500

5 555 000等

是我干的

代码语言:javascript
复制
@IBAction func textEditingChanged(_ sender: UITextField) {
    if sender.text!.count > 0 && sender.text!.count % 4 == 0 && sender.text!.last! != " " {
       sender.text!.insert(" ", at:sender.text!.index(sender.text!.startIndex, offsetBy: sender.text!.count-3) )
    }
}

但它不能正常工作

5000

5 00000

然后用新空格删除

5000.0

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-02-23 16:50:40

有多种方法来完成你想要的。您可以使用NumberFormatter或手动插入空格。首先,从文本字段中删除所有非数字字符,然后格式化或插入一个空格,其中除第一个和最后一个位置外,每3位数字:

代码语言:javascript
复制
@IBAction func textEditingChanged(_ sender: UITextField) {
    sender.text!.removeAll { !("0"..."9" ~= $0) }
    let text = sender.text!
    for index in text.indices.reversed() {
        if text.distance(from: text.endIndex, to: index).isMultiple(of: 3) &&
            index != text.startIndex &&
            index != text.endIndex {
            sender.text!.insert(" ", at: index)
        }
    }
    print(sender.text!)
}

操场测试:

代码语言:javascript
复制
let tf = UITextField()
["","5","55","550","5500","55500","555500","5555000"].forEach { text in
    tf.text = text
    textEditingChanged(tf)
}

这将打印:

5

55

550

五千五百

55 500

555 500

555000

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66337184

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档