来自Swift中String的子串

时间:2016-08-03 12:39:51

标签: ios swift

我有代码从binary.Read()中的字符串中找出子字符串,请帮忙!

我找到子字符串Swift的代码是: -

http://corbpl.com/groupinfo.php?show=95

3 个答案:

答案 0 :(得分:3)

您应该保留原始的Objective-C代码来说明您想要做什么。 (我的意思是你的帖子应该包含原始代码,以及你到目前为止所做的事情。)

你的输入字符串应该是这样的字符串文字:

var aString = "href=\"http://www.corpbpl.com/groupinfo.php?show=95\" onmousedown=\"uaction(this,{up:'90de%=%Nofi7rO6B&l=8upb1p&E%=6&ex=jXTDh5zYQLa9&})\""

在Swift 2中:

if let
    hashtag = aString.rangeOfString("http://"),
    word = aString.rangeOfString("95", range: hashtag.startIndex..<aString.endIndex)
{
    let hashtagWord = aString[hashtag.startIndex..<word.endIndex]
    print(hashtagWord) //->http://www.corpbpl.com/groupinfo.php?show=95
}

在Swift 3中:

if
    let hashtag = aString.range(of: "http://"),
    let word = aString.range(of: "95", range: hashtag.lowerBound..<aString.endIndex)
{
    let hashtagWord = aString[hashtag.lowerBound..<word.upperBound]
    print(hashtagWord) //->http://www.corpbpl.com/groupinfo.php?show=95
}

一些观点:(使用Swift 2术语)

  • Swift String的rangeOfString(_:)方法返回Range<String.Index>,而不是NSRange。 您无法将结果分配到NSRange

  • 变量中
  • 返回的startIndex的{​​{1}}指向找到的第一个字符,返回的Range的{​​{1}}指向找到的最后一个字符的旁边

  • endIndex方法(在上面的代码中看似Range)更适合在一定范围内搜索字符串,而不是创建子字符串。

答案 1 :(得分:3)

Swift 2.x

mo

输出:

var aString = "href=http://www.corpbpl.com/groupinfo.php?show=95 onmousedown=uaction(this,{up:'90de%=%Nofi7rO6B&l=8upb1p&E%=6&ex=jXTDh5zYQLa9&});"

var hashtag = aString.rangeOfString("http://")
var word = aString.rangeOfString("95")
var hashtagWord = aString.substringWithRange(Range<String.Index>(start: hashtag!.startIndex.advancedBy(0), end: word!.endIndex.advancedBy(0)))
print(hashtagWord)

答案 2 :(得分:3)

试试这个,

Stream