如何在 Swift 中将“Index”转换为“Int”类型?

2023-12-11

我想将字符串中包含的字母的索引转换为整数值。尝试读取头文件,但找不到类型Index,虽然它看起来符合协议ForwardIndexType使用方法(例如distanceTo).

var letters = "abcdefg"
let index = letters.characters.indexOf("c")!

// ERROR: Cannot invoke initializer for type 'Int' with an argument list of type '(String.CharacterView.Index)'
let intValue = Int(index)  // I want the integer value of the index (e.g. 2)

任何帮助表示赞赏。


编辑/更新:

Xcode 11 • Swift 5.1 或更高版本

extension StringProtocol {
    func distance(of element: Element) -> Int? { firstIndex(of: element)?.distance(in: self) }
    func distance<S: StringProtocol>(of string: S) -> Int? { range(of: string)?.lowerBound.distance(in: self) }
}

extension Collection {
    func distance(to index: Index) -> Int { distance(from: startIndex, to: index) }
}

extension String.Index {
    func distance<S: StringProtocol>(in string: S) -> Int { string.distance(to: self) }
}

游乐场测试

let letters = "abcdefg"

let char: Character = "c"
if let distance = letters.distance(of: char) {
    print("character \(char) was found at position #\(distance)")   // "character c was found at position #2\n"
} else {
    print("character \(char) was not found")
}

let string = "cde"
if let distance = letters.distance(of: string) {
    print("string \(string) was found at position #\(distance)")   // "string cde was found at position #2\n"
} else {
    print("string \(string) was not found")
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在 Swift 中将“Index”转换为“Int”类型? 的相关文章

  • Swift 中的自定义输入视图

    我花了几个小时试图弄清楚如何创建 然后定制inputView上班 我有一个网格TextInputs 想想拼字板 按下时应该加载自定义inputView插入文本 我创建了一个 xib文件包含UI elements为定制inputView 我能
  • 液体字符串中的转义字符

    我正在尝试将包含各种尺寸的标签列表放在一起 在 Shopify 中使用 Liquid 尺寸使用单引号和双引号表示英寸和英尺 因为它同时使用两者 所以会导致字符串正确关闭的问题 我尝试过使用标准转义字符 但这似乎不起作用 是否可以在 Liqu
  • 如何用C++解析复杂的字符串?

    我试图弄清楚如何使用 解析这个字符串sstream 和C 其格式为 string int int 我需要能够将包含 IP 地址的字符串的第一部分分配给 std string 以下是该字符串的示例 std string 127 0 0 1 1
  • 滚动视图下的iOS swift 4 imageview:双击缩小

    我已经应用了图像视图来通过捏合来放大 缩小 那很容易 当在图像视图上应用双击时 无法检测到选择方法 我使用 Xcode 9 和 swift 4 您能告诉我滚动视图是否应该应用双击手势吗 var previewImage UIImage ni
  • Swift 中的 AURenderCallback

    我正在创建一个使用音频单元的应用程序 虽然 Objective C 中有很多代码示例 包括 Apple 自己的 aurioTouch 等 但我正在尝试用 Swift 编写整个代码 我已经能够设置我的 AUGraph 并通过它运行一些音频 但
  • 如何获取 ios 日期数组中的所有星期日

    我只想要一个数组 它以 NSDate 的形式包含一年中的所有星期一 但速度很快 我在 Objective c 中使用以下代码 但不知道如何在 swift 中使用它 NSDate pickerDate NSDate date NSLog pi
  • 在 swift 中从本地视频创建缩略图

    如何从本地视频文件快速创建缩略图 例如 如果视频文件路径位于此处 file Users Dev Library Developer CoreSimulator Devices F33222DF D8F0 448B A127 C5B03C64
  • 将浮点数截断为小数点后两位的最简单方法?

    在 Swift 中 有没有办法将浮点数截断为小数点后两位 以便您可以用它执行进一步的计算 我见过的所有线程都涉及到字符串的转换 我不知道如何在数学上使用它 我尝试使用扩展 在这个论坛上找到 认为我可以在截断后转换回浮动 但我最终回到了开始的
  • 动态高度 UITableViewCell 内的动态高度 UICollectionView

    我有一个水平的UICollectionView固定到 a 的所有边缘UITableViewCell 集合视图中的项目是动态调整大小的 我想让表视图的高度等于最高集合视图单元格的高度 视图的结构如下 UI表格视图 UITableViewCel
  • 每第 n 个字符分割一个字符串

    在 JavaScript 中 这就是我们如何在每 3 个字符处分割一个字符串 foobarspam match 1 3 g 我正在尝试弄清楚如何在 Java 中做到这一点 有什么指点吗 你可以这样做 String s 1234567890
  • 在 ARKit 和 RealityKit 中使用 Raycast 的真正好处是什么?

    RealityKit 和 ARKit 中的光线投射有何用途 我什么时候需要使用makeRaycast查询 https developer apple com documentation realitykit arview 3255315 m
  • 关于C字符串的问题

    我是 C 语言新手 对 C 字符串非常困惑 以下是我的问题 从字符串中查找最后一个字符 如何找出字符串中的最后一个字符 我带着类似的东西来 char str hello printf c str strlen str 1 return 0
  • 数组的扩展,其中元素是可选的

    我有一个数组String like so var myArray String 2 banana nil 31 我还有另一个数组String像这样 var myStringArray String 2 3 我为 Array 编写了一个扩展
  • 使用 FFT 执行音频分析

    我已经被这个问题困扰好几天了 并且浏览了几乎所有相关的 StackOverflow 页面 通过这次活动 我现在对 FFT 是什么及其工作原理有了更深入的了解 尽管如此 我在将其实现到我的应用程序中时遇到了极大的困难 简而言之 我想做的是为我
  • 使用 iOS swift AVPlayer 在横向模式下不全屏

    我将视频视图设置为全屏 然而 在模拟器中玩时 它并没有全屏运行 此问题仅适用于 iPad 不适用于 iPhone 这是我的代码 override func viewDidAppear animated Bool super viewDidA
  • prepareForSegue 和 PerformSegueWithIdentifier 发送方

    我想知道标题中的函数如何工作以及发送者参数 假设单击按钮调用了performSegue方法 那么这是否也调用了prepareSegue方法 是否在performSegue方法之前但在按下按钮之后调用prepareSegue方法 另外 这两个
  • 领域数据库对象看起来是空的,但实际上不是

    我在用Realm https realm io对于一个小而简单的项目 我正在使用最新版本的框架 昨天从 Github 编译 和当前 AppStore 版本的 Xcode with Swift 2 1 我正在通过 segue 将 Realm
  • 解包可选值时意外发现 nil - 使用 ALAMOFIRE

    我正在尝试使用 Alamofire 获取 JSON 格式的数据 当我使用一个 URL 时 它工作正常 当我使用另一个 URL 时 我在解包可选值时收到错误 我似乎无法追踪错误来自哪里 我已采取将代码放入 ViewDidLoad 来跟踪错误
  • 无法在 Swift 中创建文件路径

    我尝试在 Swift 中打开该文件 为此 我创建了文件路径 这不起作用 maaaacy pwd Users tsypa maaaacy cat a txt test maaaacy a swift nil maaaacy 剧本 usr bi
  • Swift - 在 TableView 单元格中使用步进器递增标签

    这里又是一个 Swift 初学者 我只是想在每个 TableView 单元格中使用一个步进器来增加同一单元格中的标签 我发现了关于这个主题的几个问题 但它们包含其他元素 我无法提取基本概念 Swift Stepper Action 更改同一

随机推荐

  • 在 Selenium for Python 中,如何获取元素的属性而不是属性?

    根据文档 获取属性实际上返回属性而不是属性 除非该属性不存在 在这种情况下它会回退到属性 获取属性将始终归还财产 有没有办法始终获取该属性 我觉得奇怪的是 名为 get attribute 的函数会优先考虑属性值而不是属性值 获取属性 属性
  • 如何使用 Tesseract API 迭代单词?

    我正在尝试与 Tesseract API 并行地学习 Python 我的最终目标是学习如何使用 Tesseract API 来读取文档并进行一些基本的错误检查 我发现了一些似乎是不错的起点的示例 但我无法理解两段代码之间的差异 尽管行为不同
  • 如何通过 Facebook API 发布包含多张照片的状态?

    我的 Facebook Graph API 有问题 有没有办法使用 Graph API Javascript SDK 在状态帖子中附加多张照片 使用 iOS Facebook 应用程序可以发布包含多张照片的状态 然而 在浏览了互联网上的文档
  • 您可以在加载的项目上创建 VC++ 解决方案集预处理器 #defines 吗?

    我有一个支持 define 的库来控制它的构建方式 然而 该库可以被需要不同版本的多个 EXE 项目使用 我可以让 app EXE 项目设置 define 在构建时由库使用 或者在解决方案中设置吗 我能想到的唯一其他选择是在库项目上创建一个
  • 结账 woocommerce wordpress 中简短描述的解决方案对我不起作用

    我已经使用了我在这里找到的 brasofilo 提供的解决方案结帐 woocommerce wordpress 中的简短描述 但由于某种原因 每个产品的每个描述后都会添加一个冒号 我用萤火虫试图找出它可能来自哪里 它显示在结帐页面上显示的每
  • 返回 Python CGI MySQL 脚本的输出

    我对 Python 和 MySQL 非常陌生 这是我的第一个 Stack 问题 所以 如果我遗漏了一些明显的东西 请提前道歉 但是 在提问之前我确实尝试过研究一下 我正在尝试学习 Python MySQL 和 CGI 脚本编写的基础知识 为
  • 从 k8s 入口动态添加/删除命名主机

    我正在 GKE 上设置 k8s 集群 通配符 DNS server com将指向入口控制器 在集群内部 将有网络服务器 Pod 每个 Pod 都公开一个独特的服务 Ingress 控制器将使用服务器名称来路由到各种服务 服务器几乎每天都会被
  • 当泄漏工具未显示内存泄漏时,如何调试内存泄漏?

    我有一个用 Swift 编写的 iOS 应用程序 该应用程序正在泄漏内存 在某些情况下 一些对象应该被释放 但它们没有 我通过简单地添加了解了这个问题deinit调试消息如下 deinit println DEINIT KeysProvid
  • 贪心算法无法完成 0-1 背包 p‌r‌o‌b‌l‌e‌m 的情况

    我正在寻找一种情况 其中选择重量 考虑容量为 4 的背包以及具有以下重量和价值的物品 Item Weight Value value Weight A 3 1 65 0 55 B 2 1 0 5 C 2 1 0 5 基于每权重价值的贪婪算法
  • 有没有办法在 Dart 中通过引用传递原始参数?

    我想通过引用传递一个原语 int bool 我在这里找到了关于它的讨论 通过引用传递值类型 段落 Dart 中的值类型 但我仍然想知道是否有办法在 Dart 中做到这一点 除了使用对象包装器 有什么发展吗 Dart 语言不支持这一点 我怀疑
  • 将 Service Broker 与 Sql Server Express 2008 结合使用

    是否可以在 sql Express 上使用外部激活而不通过 sql enterprise standard 我想向 sql Express 服务代理发送一条消息 然后让它通知在同一盒子上运行的外部应用程序服务 以便启动控制台应用程序来拾取消
  • 使用 jQuery.ajax 和 JSONP 设置标头?

    我正在尝试使用 jQuery 访问 google 文档 这是我到目前为止所拥有的 var token my auth token ajax url http docs google com feeds documents private f
  • 当 COM 事件发生时,如何更新自定义图形项(在 pyqtgraph 中)?

    我做了一个程序 实时接收原油期货的每笔交易信息 基本上 OnReceiveRealData当事务执行并调用时执行real get方法 在该方法中 收集当前时间 价格和数量数据并用它们制作字典 有更多方法可以从实时流数据中制作 OHLC 格式
  • 如何获取当前shell脚本的完整路径名?

    有没有更简单的方法来做到这一点 bin ksh THIS SCRIPT usr bin readlink f echo 0 bin sed s PWD echo THIS SCRIPT 我被困在使用ksh但更喜欢一个适用于的解决方案bash
  • 闹钟没有停止

    我试图停止警报并检查它是否停止 但它总是返回 true 意味着警报正在工作 我尝试根据链接中的答案停止警报https stackoverflow com a 17616299 1226882但这对我不起作用 请参考下面的代码 启动警报 pu
  • 为什么 Spark Mongo 连接器不下推过滤器?

    我有一个大型 Mongo 集合 想在我的 Spark 应用程序中使用 Spark Mongo 连接器 该集合相当大 gt 10 GB 并且包含每日数据 索引为original item CreatedDate场地 在 Mongo 中选择几天
  • ReadProcessMemory 在某些页面上失败 (GetLastError()=299)

    我尝试读取进程 Win7 64 的所有提交页面 在大多数页面上它可以工作 但在少数页面上会失败 我无法解释为什么 这是我的测试程序 x32编译 在Win7 64中测试 include
  • HTML5 视频自动播放在 Chrome 中不起作用

    我正在尝试使用 html5 视频在滑块中显示视频 这适用于controls参数 显示控件 但是当我添加autoplay它不会自动播放 所以我搜索了原因 发现 chome 只允许静音视频自动播放 所以我添加了muted参数 但是当我这样做时
  • Microsoft 应用程序 ID 和密码有何用途?

    我正在尝试部署我的 Azure Bot 服务 但我有点难以理解 Microsoft 应用程序 ID 和密码的用途是什么 有人能给我解释一下这些术语吗 我试图在网上寻找答案但没有成功 感谢您的任何帮助 这是机器人服务的标识 你会注意到在应用程
  • 如何在 Swift 中将“Index”转换为“Int”类型?

    我想将字符串中包含的字母的索引转换为整数值 尝试读取头文件 但找不到类型Index 虽然它看起来符合协议ForwardIndexType使用方法 例如distanceTo var letters abcdefg let index lett