Swift:如何在某个角色之前获取字符串? [英] Swift : How to get the string before a certain character?

查看:125
本文介绍了Swift:如何在某个角色之前获取字符串?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

如何在swift中的某个字符前获取字符串?下面的代码是我在Objective C中的表现,但似乎无法在Swift中执行相同的任务。有关如何实现这一目标的任何提示或建议? rangeOfString 似乎在swift中根本不起作用(尽管Swift一直在为我做好准备)。

How do I get the string before a certain character in swift? The code below is how I did it in Objective C, but can't seem to perform the same task in Swift. Any tips or suggestions on how to achieve this? rangeOfString seems to not work at all in swift (although Swift has been acting up for me again).

NSRange range = [time rangeOfString:@" "];
NSString *startDate =
[time substringToIndex:range.location];

从上面的代码中可以看出,我能够在Objective中的空格字符之前获取字符串C。

As you can see from the code above I am able to get the string before the space character in Objective C.

编辑:如果我尝试这样的事情

Edit : If I try something like this

 var string = "hello Swift"
 var range : NSRange = string.rangeOfString("Swift")

我收到以下错误。


无法将表达式的类型'NSString'转换为''(String,
options:NSStringCompareOptions,range:Range?,locale) :
NSLocale?)'

Cannot convert the expression's type 'NSString' to type '(String, options: NSStringCompareOptions, range: Range?, locale: NSLocale?)'

不确定我做错了什么或如何正确解决。

Not sure what I did wrong exactly or how to resolve it correctly.

推荐答案

使用componentsSeparatedByString(),如下所示:

Use componentsSeparatedByString() as shown below:

var delimiter = " "
var newstr = "token0 token1 token2 token3"
var token = newstr.componentsSeparatedByString(delimiter)
print (token[0])

或者使用您的具体案例:

Or to use your specific case:

var delimiter = " token1"
var newstr = "token0 token1 token2 token3"
var token = newstr.componentsSeparatedByString(delimiter)
print (token[0])

Swift 3编辑:

使用Swift 3,上述方法不再起作用,请改用以下内容:

With Swift 3, the above method doesn't work anymore, use the following instead :

var token = newstr.components(separatedBy: delimiter)

如果此编辑对您有所帮助,请upvote 此答案

If this edit helped you, please upvote this answer.

这篇关于Swift:如何在某个角色之前获取字符串?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆