获得最后一个字符类型的字符串
后的文字,我有以下字符串类型:获得最后一个字符类型的字符串
file:///private/var/mobile/Containers/Data/Application/1C02189F-2426-4420-A178-1CC420CBBD3A/tmp/com.test.Test-Inbox/2015-04-23_00002.jpg
,我需要访问的文件扩展名在这种情况下是.jpg
我想在最后一个.
之后访问字符串,因为它总是我想要的文件扩展名,但是我不能将它串到最后3个字符,因为扩展名可能有4个字符,如.docx
或.mpeg
什么是最好的方法来做到这一点?
我想在反向的字符串和循环字符char得到最新的(在这种情况下第一).
,然后当我找到长度,我可以substring它。
有什么想法?
感谢
您可以使用String.components(separatedBy:)
到String
打入通过一定的字符分隔子(“”你的情况)。既然您知道文件扩展名将在最后一个分隔符之后,您可以在子串的数组上调用.last
来访问它。
let fileNameWithExtension = "file:///private/var/mobile/Containers/Data/Application/1C02189F-2426-4420-A178-1CC420CBBD3A/tmp/com.test.Test-Inbox/2015-04-23_00002.jpg"
let fileExtension = fileNameWithExtension.components(separatedBy: ".").last
哇......这是伟大的,没有新的'字符串功能 –
您可以简单地使用它。
let string = "file:///private/var/mobile/Containers/Data/Application/1C02189F-2426-4420-A178-1CC420CBBD3A/tmp/com.test.Test-Inbox/2015-04-23_00002.jpg"
let all = string.components(separatedBy: ".")
let ext = all.last
print(ext)
这是伟大的! –
您可以通过
NSURL *stringFilePath = [NSURL URLWithString:@"file:///private/var/mobile/Containers/Data/Application/1C02189F-2426-4420-A178-1CC420CBBD3A/tmp/com.test.Test-Inbox/2015-04-23_00002.jpg"];
NSString *fileName = [stringFilePath lastPathComponent];
得到它,得到扩展
NSLog(@"%@", fileName.pathExtension)
对于斯威夫特:
let stringFilePath:NSString = "file:///private/var/mobile/Containers/Data/Application/1C02189F-2426-4420-A178-1CC420CBBD3A/tmp/com.test.Test-Inbox/2015-04-23_00002.jpg"
let strFileExtenson = stringFilePath.pathExtension
print(strFileExtenson)
这个问题明确要求'Swift',那么为什么Objective-C的答案呢? –
@DávidPásztor - 检查更新 – Govaadiyo
试试这个:
let fileNameWithExtension = "file:///private/var/mobile/Containers/Data/Application/1C02189F-2426-4420-A178-1CC420CBBD3A/tmp/com.test.Test-Inbox/2015-04-23_00002.jpg"
let url = URL(string:fileNameWithExtension)
print(url?.pathExtension ?? "")
在Swift3,只能从路径中轻松获取。不需要做任何额外的事情。
let filePath:NSString = "the_file_name.png"
let fileExtension = filePath.pathExtension
看到这个https://stackoverflow.com/questions/17828044/is-it-possible-to-find-the-file-extension-of-a-uiimage –
这种情况下,是具体的图像,在我的情况下,该文件可以是任何类型,并且我得到一个指针URL而不是原始的NSData类型。感谢您指出, –