首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用String.Indexes作为整数

使用String.Indexes作为整数
EN

Stack Overflow用户
提问于 2015-05-20 03:59:28
回答 1查看 130关注 0票数 0

我在Xcode中有一个操场,看起来像这样

代码语言:javascript
复制
import UIKit
import AVFoundation

var url = "app://Wip%20My_Hair_Willow%20Smith_0_Tue%20May%2019%202015%2021:34:51%20GMT-0400%20(EDT)"

var info = url.stringByReplacingOccurrencesOfString("whenisay://", withString: "", options: NSStringCompareOptions.LiteralSearch, range: nil).stringByReplacingOccurrencesOfString("%20", withString: " ", options: NSStringCompareOptions.LiteralSearch, range: nil).stringByReplacingOccurrencesOfString("_", withString: "/", options: NSStringCompareOptions.LiteralSearch, range: nil)

var SlashOne = info.rangeOfString("/")!.startIndex
var SlashTwo = dropFirst(info.substringFromIndex(SlashOne)).rangeOfString("/")!.startIndex
var SlashThree = dropFirst(info.substringFromIndex(SlashTwo)).rangeOfString("/")!.startIndex
var SlashFour = dropFirst(info.substringFromIndex(SlashThree)).rangeOfString("/")!.startIndex

我想写这个:

代码语言:javascript
复制
let first = info.substringToIndex(advance(info.startIndex, SlashOne))

这样我就可以在info中的第一个"/“之前有一个子字符串,但是它给了我一个错误:

代码语言:javascript
复制
Cannot find an overload for 'advance' that accepts an argument list of type '(String.Index, String.Index)'

如果我用一个整数替换SlashOne,那么最后一行就能工作了,所以我只能假设'advance‘想要'(String.Index, Int)'

如何将SlashOne转换为整数?我哪儿都找不到。你能做到吗?如果没有,我怎么能把这条绳子分开呢?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-05-20 04:13:21

拆分字符串的一个更好的方法是

代码语言:javascript
复制
let array = split(info){$0 == "/"}

这将返回一个数组。

代码语言:javascript
复制
let first = splitedarray[0]//app:
let second = splitedarray[1]//Wip My

如果坚持使用自己的方式,就可以以这种方式获得子字符串。

代码语言:javascript
复制
let firstRange = Range<String.Index>(start: info.startIndex, end:SlashOne)
let first = info.substringWithRange(firstRange)//This is app:
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30340034

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档