swift - 如何屏蔽 Swift 中的最后一个数字?

标签 swift string int masking

如何使用 swift 屏蔽最后一个字符串,我编写了如下代码。但是代码只显示最后一个数字,我的期望是代码显示前 5 位数字

这里是我的代码:

extension StringProtocol {
    var masked: String {
        return String(repeating: "•", count: Swift.max(0, count-5)) + suffix(5)
    } }

var name = "0123456789"

print(name.masked)

我得到输出:•••••56789

但我的期望是:01234•••••

最佳答案

使用前缀而不是后缀

extension StringProtocol {
    var masked: String {
        return prefix(5) + String(repeating: "•", count: Swift.max(0, count-5))
    } 
}

您也可以创建一个函数来代替参数化位数和方向(甚至掩码字符)

extension StringProtocol {
    func masked(_ n: Int = 5, reversed: Bool = false) -> String {
        let mask = String(repeating: "•", count: Swift.max(0, count-n))
        return reversed ? mask + suffix(n) : prefix(n) + mask
    } 
}

var name = "0123456789"

print(name.masked(5)) 
// 01234•••••

print(name.masked(5, reversed: true)) 
// •••••56789

关于swift - 如何屏蔽 Swift 中的最后一个数字?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55279663/

相关文章:

c - C 中奇怪的 malloc 行为

C 工作面试 - 类型转换和比较

ios - 在 fscalendar 中禁用过去的日子

联合两个字符串的 Java String 实用程序/方法

R - 字符串处理的变异 - 没有得到我希望的行为

python - 如何选择某个位置将字符串拆分为 "_"?

c++ - 使用 'unsigned int' 读取 'cin'

swift - 如何将 AdMob GADBannerView 添加到每个 View

swift - WordPress Swift 构建器框架轮播箭头拆分

Swift 3 RKObjectRequestOperation 返回错误,无法转换 RKObjectRequestOperation 类型