首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何掩盖Swift中的最后一个数字?

如何掩盖Swift中的最后一个数字?
EN

Stack Overflow用户
提问于 2019-03-21 19:40:58
回答 2查看 844关注 0票数 2

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

下面是我的代码:

代码语言:javascript
复制
extension StringProtocol {
    var masked: String {
        return String(repeating: "•", count: Swift.max(0, count-5)) + suffix(5)
    } }

var name = "0123456789"

print(name.masked)

我得到输出:···56789

但我的期望是:01234···

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-03-21 19:45:28

使用前缀而不是后缀

代码语言:javascript
复制
extension StringProtocol {
    var masked: String {
        return prefix(5) + String(repeating: "•", count: Swift.max(0, count-5))
    } 
}

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

代码语言:javascript
复制
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
票数 9
EN

Stack Overflow用户

发布于 2020-05-12 09:37:18

如果你想屏蔽一个电子邮件地址。下面是代码

代码语言:javascript
复制
func maskingEmail(email: String) -> String {
    let emailComponents = email.components(separatedBy: "@")
    let emailDomainComponents = emailComponents[1].components(separatedBy: ".")
    let maskedEmailName = String(repeating: "•", count: Swift.max(0, emailComponents[0].count-3)) + emailComponents[0].suffix(3)
    let maskedEmailProvider = String(repeating: "•", count: Swift.max(0, emailDomainComponents[0].count-3)) + emailDomainComponents[0].suffix(3)
    let emailDomain = emailDomainComponents[1]
    return "\(maskedEmailName)@\(maskedEmailProvider).\(emailDomain)"
}

// The Output
print(maskingEmail(email: "pr1vaterelay@gmail.com")) // •••••••••lay@••ail.com
print(maskingEmail(email: "private_relay@bk.ru")) // ••••••••••lay@bk.ru
print(maskingEmail(email: "private.relay@protonmail.com")) // ••••••••••lay@•••••••ail.com
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55279663

复制
相关文章

相似问题

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