当前位置: 首页 > 面试题库 >

如何找到Swift字符串中子字符串的最后一次出现?

邰棋
2023-03-14
问题内容

在Objective-C中,我使用了:

[@"abc def ghi abc def ghi" rangeOfString:@"c" options:NSBackwardsSearch];

但是现在NSBackWardsSearch似乎不存在。谁能为Swift提供等效的代码?

我希望能够在整个字符串中找到字符数。因此,在上面的示例中,它将返回3。


问题答案:

可可框架应该可以在Swift中访问,但是您需要导入它们。尝试导入Foundation以访问NSString API。从“将Swift与Cocoa和Objective-C结合使用”指南的“使用Cocoa数据类型-
字符串

”中:

Swift会在String类型和NSString类之间自动桥接。[…]要启用字符串桥接,只需导入Foundation。

另外,它NSBackwardsSearch是一个枚举值,因此您必须使用Swift的enum
/
option语法来访问它(作为NSStringCompareOptions选项类型的一部分)。前缀从C枚举值中剥离,因此NS从值名称中删除。

总而言之,我们有:

import Foundation
"abc def ghi abc def ghi".rangeOfString("c", options:NSStringCompareOptions.BackwardsSearch)

请注意,您可能必须使用distanceadvance函数来正确使用from的范围rangeOfString



 类似资料:
  • 问题内容: 我的主字符串是“ hello Swift Swift和Swift”,子字符串是Swift。我需要获取子字符串“ Swift”在提到的字符串中出现的次数。 此代码可以确定模式是否存在。 现在我需要知道发生的次数。 问题答案: 一种简单的方法是分割,然后从零件数中减去1: 此代码打印3。 编辑: 在Swift 3语法之前,代码如下所示:

  • 我试图从字符串中找到最小的子字符串(包含 set 的所有值) 例如: 因为< code>OxVxT是示例1中最小的子串(包含集合的所有元素),所以我为它编写了代码,但这不是最好的方法,也不适用于所有示例,我没有通过我的代码找到最小的子串,我的代码如下: 我找到所有可能的子字符串索引,然后找到它们之间的距离,并且距离最短的子字符串是字符串中最小的子字符串。我的代码不能处理所有测试用例,也没有给出正确

  • 问题内容: 有谁知道用一个字符串中的另一个字符串替换最后一个出现的字符串的快速方法? 问题答案: 您可以使用此功能:

  • 问题内容: 我想在给定的输入string中找到某个子字符串最后一次出现的位置(或索引)。 例如,假设输入字符串为,子字符串为,则应输出3。 我怎样才能做到这一点? 问题答案: 用途: 另外,请勿将其用作变量名,否则将使内置的阴影变暗。

  • 问题内容: 我有这样的字符串 我想用转义双引号(\“)替换最后一个双引号(”) 字符串的结果是 我怎样才能做到这一点。我知道要替换字符串的第一次出现。但不知道如何替换字符串的最后一次出现 问题答案: String str = “"Position, fix, dial"“; int ind = str.lastIndexOf(“"“); if( ind>=0 ) str = new StringB

  • 问题内容: 我有一个字符串,它是html页面的完整内容,我正在尝试查找的第二次出现的索引。有人对如何实现这一目标有任何建议吗? 问题答案: 这是一个好玩的镜头;)