Swift 从特定范围的子字符串获取字符串

Swift 从特定范围的子字符串获取字符串,swift,string,substring,Swift,String,Substring,我想写一个函数,检查字符串的最后3个字符是否是另一个字符串的一部分,如果是,我只返回true,否则返回false 例如:- let str1 = "abc" let str2 = "HiaBC" 我想在这里检查的是str1是否存在于str2的最后几个字符中,而不考虑大小写敏感性 我试过了 str2.contains("HI") // returned true as abc existed, should have returned

我想写一个函数,检查字符串的最后3个字符是否是另一个字符串的一部分,如果是,我只返回true,否则返回false

例如:-

let str1 = "abc"
let str2 = "HiaBC"
我想在这里检查的是str1是否存在于str2的最后几个字符中,而不考虑大小写敏感性

我试过了

str2.contains("HI") // returned true as abc existed, should have returned false as it was not in the last 3 characters of the string.

func checkSubstring(str1:String, str2:String) -> Bool {
    if str2.contains(str1) {
        return true
    }
    return false
}
我想要的是以某种方式应用一些范围,并检查最后3个字符是否存在于子字符串中

任何人都可以提出任何建议?

您可以使用
范围(of:)
和适当的选项:

  • 不区分大小写
    用于不区分大小写的搜索
  • .backwards
    从字符串末尾开始搜索,然后
  • .archored
    将搜索限制在源字符串的末尾
例如:

print(checkSubstring(str1: "abc", str2: "HiaBC")) // true
print(checkSubstring(str1: "ab", str2: "HiaBC")) // false
您可以使用带有适当选项的
范围(of:)

  • 不区分大小写
    用于不区分大小写的搜索
  • .backwards
    从字符串末尾开始搜索,然后
  • .archored
    将搜索限制在源字符串的末尾
例如:

print(checkSubstring(str1: "abc", str2: "HiaBC")) // true
print(checkSubstring(str1: "ab", str2: "HiaBC")) // false
<> > <代码>后缀(3)< /代码>只考虑最后三个字符和 CaseNeXelistyVCp/<代码>,这是不言自明的。

func checkSubstring(str1: String, str2: String) -> Bool {
    return str2.suffix(3).caseInsensitiveCompare(str1) == .orderedSame
}
<> > <代码>后缀(3)< /代码>只考虑最后三个字符和 CaseNeXelistyVCp/<代码>,这是不言自明的。

func checkSubstring(str1: String, str2: String) -> Bool {
    return str2.suffix(3).caseInsensitiveCompare(str1) == .orderedSame
}

谢谢你的ANS,它的意思是“VADANE”,这说明基础是要导入的。谢谢你的ANS,它的工作是“VADANE”,只是一个注释,它要求基础被导入。只是注意到这需要基础被导入。.caseInsensitiveCompare(“ss”)=.orderedSame也会返回
true
——可能是因为
“ß”.uppercased()
“ss.uppercased()
都等于“ss”。这可能是原因,但另一方面,VADEN的代码似乎适用于这种特殊情况:“@ CISTICK:这是他使用<代码>后缀()/Cuffe的副作用。只需注意,这是需要导入的基础。而且,这似乎给像“A”和“ASSE”这样的拐角情况提供了假阳性。==.orderedSame也返回
true
——可能是因为
“ß”.uppercased()
“ss”。uppercased()
等于“ss”。这可能是原因,但另一方面,瓦迪安的代码似乎适用于这种特殊情况:)@Cristik:这更多的是他使用
后缀的副作用。