2016-08-03 14 views
-4

Ich habe den Code, um Teilstring von String in Swift herauszufinden, bitte helfen!Teilstring von String in Swift

finden Meine Codes String http://corbpl.com/groupinfo.php?show=95 ist: -

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

var hashtag: NSRange = aString.rangeOfString("http://") 

var word: NSRange = 
aString.substringFromIndex(aString.startIndex.advancedBy(hashtag.location)) 
+3

Zeigen Sie, was Sie in Swift versucht haben. – Larme

+0

ja ich bin jetzt fertig erzählen –

Antwort

3

Sie sollten Ihren ursprünglichen Objective-C-Code halten zu sagen, was Sie tun möchten. (ich meine Ihr Beitrag sowohl den ursprünglichen Code enthalten soll, und das, was Sie bisher getan haben.)

Und Ihre Eingabe String sollte als String so seine wörtlichen:

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

In 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 
} 

In 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 
} 

Einige Punkte: (mit Swift 2 Terminologie)

  • rangeOfString(_:) Die Methode der Swift String zurückgibt Range<String.Index>, nicht NSRange. Sie können das Ergebnis nicht einer Variablen von NSRange zuweisen.

  • Die startIndex der zurück Range zeigt auf das erste Zeichen gefunden, die endIndex der zurück Range zeigt auf den nächsten zu dem letzten Zeichen gefunden.

  • Die rangeOfString(_:options:range:locale:) Methode (scheinbar rangeOfString(_:range:) im obigen Code) ist besser für die Suche einer Zeichenfolge innerhalb eines begrenzten Bereichs, als eine Teilzeichenfolge erstellen.

3

Swift 2.x

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) 

Ausgang:

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

die Sie interessieren,

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

    var arr = aString.componentsSeparatedByString(" ") 

    let newStr = arr[0] as String 

    var resultStr = newStr.stringByReplacingOccurrencesOfString("href=", withString: "")