2015-11-23 8 views
9

मैं एक स्ट्रिंगस्विफ्ट में स्ट्रिंग के अंतिम पथ घटक को कैसे हटाएं?

11/Passion/01PassionAwakening.mp3 

मैं पिछले पथ घटक

01PassionAwakening.mp3 

हटाने की आवश्यकता है तो यह की तरह

11/Passion 

यह कर सकते हैं कैसे लग रहा है है?

और मैं दोनों मेरे जरूरत

+2

NSString प्रलेखन "पथ के साथ कार्य करना" ... –

उत्तर

16

आप दो भाग में आपके url अलग कर सकते हैं के लिए घटकों की जरूरत है। कौन सा अधिक जानकारी के लिए नीचे दिए गए

let str : NSString = "www.music.com/Passion/PassionAwakening.mp3" 
    let path : NSString = str.stringByDeletingLastPathComponent 
    let ext : NSString = str.lastPathComponent 

    print(path) 
    print(ext) 

आउटपुट

www.music.com/Passion 
PassionAwakening.mp3 

दिया जाता है कृपया एक नज़र

https://developer.apple.com/library/ios/documentation/Cocoa/Conceptual/Strings/Articles/ManipulatingPaths.html

+1

नोट के बारे में एक पूरा खंड है कि इस विधि केवल फ़ाइल पथ (नहीं, उदाहरण के लिए, स्ट्रिंग यूआरएल का निरूपण) के साथ काम करता है। – user3441734

+0

स्ट्रिंग प्रतिनिधित्व द्वारा आपका क्या मतलब है? –

+0

https://developer.apple.com/library/ios/documentation/Cocoa/Reference/Foundation/Classes/NSString_Class/#//apple_ref/occ/instp/NSString/stringByDeletingLastPathComponent – user3441734

4
let str = "11/Passion/01PassionAwakening.mp3" 
if !str.isEmpty { 
    let components = str.characters.split("/") 
    let head = components.dropLast(1).map(String.init).joinWithSeparator("/") 
    let tail = components.dropFirst(components.count-1).map(String.init)[0] 

    print("head:",head,"tail:", tail) // head: 11/Passion tail: 01PassionAwakening.mp3 
} else { 
    print("path should not be an empty string!") 
} 
+0

स्विफ्ट 3.0.1 वाक्यविन्यास की आवश्यकता है: विभाजन (विभाजक: "/") – clearlight

4

स्विफ्ट 3.0 संस्करण

if !str.isEmpty { 
     let components = str.characters.split(separator: "/") 
     let head = components.dropLast(1).map(String.init).joined(separator: "/") 
     let words = components.count-1 
     let tail = components.dropFirst(words).map(String.init)[0] 

     print("head:",head,"tail:", tail) // head: 11/Passion tail: 01PassionAwakening.mp3 
    } else { 
     print("path should not be an empty string!") 
    } 
है
5

यह स्विफ्ट 3.0 रूप में अच्छी तरह के लिए काम करता है:

let fileName = NSString(string: "11/Passion/01PassionAwakening.mp3").lastPathComponent 
4

आप वास्तव में विरासत NS ऑब्जेक्टिव-सी वर्गों और मैनुअल पथ स्ट्रिंग बंटवारे जहां संभव के साथ भाग करना चाहिए। बजाय URL का उपयोग करें:

let url = URL(fileURLWithPath: "a/b/c.dat") 
let path = url.deletingLastPathComponent().relativePath // 'a/b' 
let file = url.lastPathComponent // 'c.dat' 
संबंधित मुद्दे