【发布时间】:2020-03-18 19:38:44
【问题描述】:
我是使用 swift 的新手,所以我正在玩弄它,我试图弄清楚如何检查给定的字符串是否以单词“hello”开头,尽管第二个字母可以是它没有的任何东西'不必是 E,所以我可以输入 h0llo,它仍然会返回 true,这就是我想要实现的目标。
这是我目前所拥有的代码,但是它在测试中到处乱七八糟,所以在这个阶段对我来说任何帮助都是必要的。我只是添加代码,以便您可以更多地了解我正在尝试实现的目标
func check(_ givenString: String) -> Bool {
var newString = givenString
if newString.count > 2 {
newString.remove(at: String.Index(encodedOffset: 2))
if newString.hasPrefix("hello") {
return true
} else {
return false
}
}
}
print(check("h0llo"))
【问题讨论】:
-
我会使用正则表达式。 Apple docs & NSHipster
-
或者,为了学习,你可以检查三个条件 1.长度至少为
52.第一个字母是"h"3.范围2...4的子字符串是"llo". -
@Sulthan 你能举个例子吗?抱歉,我是新手,所以只是想了解很多
-
与您的问题无关,但
String.Index(encodedOffset: 2)是错误的。它只适用于常规字符(ascii)。并非所有字符都可以用单个字节表示。正确的方法是newString.remove(at: newString.index(newString.startIndex, offsetBy: 2))。如果您的意图是删除第二个字符,您可以简单地使用index(after:)方法newString.remove(at: newString.index(after: newString.startIndex))
标签: ios swift swift-playground