我有一個字符串如何刪除Swift中String的最後一個路徑組件?
11/Passion/01PassionAwakening.mp3
我需要刪除最後一個路徑組件
01PassionAwakening.mp3
那麼它看起來像
11/Passion
怎麼能行呢?
,我需要兩種成分爲我的需要
我有一個字符串如何刪除Swift中String的最後一個路徑組件?
11/Passion/01PassionAwakening.mp3
我需要刪除最後一個路徑組件
01PassionAwakening.mp3
那麼它看起來像
11/Passion
怎麼能行呢?
,我需要兩種成分爲我的需要
您可以在兩個部分分開您的網址。下面
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
這是考慮欲瞭解更多信息,請看看
注一整節,這種方法只能用文件路徑(不,例如,字符串的URL的表示)的作品。 – user3441734
字符串表示是什麼意思? –
https://developer.apple.com/library/ios/documentation/Cocoa/Reference/Foundation/Classes/NSString_Class/#//apple_ref/occ/instp/NSString/stringByDeletingLastPathComponent – user3441734
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!")
}
Swift 3.0.1需要語法:split(separator:「/」) – clearlight
雨燕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!")
}
這適用於雨燕3.0,以及:
let fileName = NSString(string: "11/Passion/01PassionAwakening.mp3").lastPathComponent
你真的應該破除傳統NS
Objective-C類和手動路徑字符串分割在可能的情況。使用URL
代替:
let url = URL(fileURLWithPath: "a/b/c.dat")
let path = url.deletingLastPathComponent().relativePath // 'a/b'
let file = url.lastPathComponent // 'c.dat'
NSString的文檔中有關於「與路工作」 ... –