【问题标题】:Swift – How to find out if a string contains several identical characters? [duplicate]Swift – 如何判断一个字符串是否包含多个相同的字符? [复制]
【发布时间】:2019-07-14 12:55:57
【问题描述】:

这是一个简单的代码,可以让我们找出一个字符串是否包含dot 个字符(我们不知道有多少,我们只知道它包含它):

var number: String = "3.14"

if number.contains(".") {
    print("The string contains a dot character")
} else {
    print("There's no dot character")
}

但是想象一下用户错误地将 2 或 3 个点放在一行中的情况,如下所示:

var number: String = "3...14"

如何判断一个字符串是包含一个dot还是多个?

如何计算字符串中的所有点?

【问题讨论】:

  • number.contains(".") 如果字符串包含一个、两个或 100 个点,则返回 true。 – “几个相似的字符”到底是什么意思?
  • 字符串是字符的集合,所以这里也可以使用stackoverflow.com/questions/31194938/…的方法。
  • 你还是没有弄清楚什么是“相似字符”。
  • 马丁,我修正了标题。
  • @MartinR,你知道count(where:) 发生了什么吗?我们在 Swift 5 中暂时拥有它。

标签: swift


【解决方案1】:

您可以在字符串上使用filter(_:) 并使用count 来获取点数:

let str = "3..14"

switch str.filter({ $0 == "." }).count {
case 0:
    print("string has no dots")
case 1:
    print("string has 1 dot")
default:
    print("string has 2 or more dots")
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-06-10
    • 2011-02-05
    • 1970-01-01
    • 2011-02-19
    • 1970-01-01
    • 2014-06-18
    相关资源
    最近更新 更多