[英]iOS - How to insert a character in a specific place inside a string?
我有一個看起來像這樣的網址:“ http://www.thisIsMyLink.com/afAFFgsfFGsgsdfgds.jpg ”
問題是我需要在“ .jpg”之前的URL末尾添加“ _s”。 所以我需要的是: http : //www.thisIsMyLink.com/afAFFgsfFGsgsdfgds_s.jpg
我發現了一種將特定字符放入字符串的方法,如下所示:
NSMutableString *mu = [NSMutableString stringWithString:myUrl];
[mu insertString:@"_s" atIndex:5];
它將在字符串內的第5個字符中添加“ _s”。 問題是,由於標識符位於“ .jpg”之前,我並不每次都知道鏈接的長度,所以我需要始終將“ _s”字符放在末尾4個字符以使其出現就在“ .jpg”之前。
我怎樣才能做到這一點?
感謝您閱讀我的文章:)
那這個呢:
NSMutableString *mu = [NSMutableString stringWithString:myUrl];
[mu insertString:@"_s" atIndex:[mu length] - 4];
但是,您應確保[mu length]
始終> = 4。
可能有一些聰明的方法,但是您沒有指定如何從中獲取原始URL。 一種選擇是使用stringWithFormat
模塊化地構建您的字符串。
這是另一種適用於任何擴展名的擴展名(例如.jpeg):
NSString *test = @"www.thisIsMyLink.com/afAFFgsfFGsgsdfgds.jpg";
NSString *ext = [test pathExtension]; // This is .jpg in this case
NSString *out = [[[test stringByDeletingPathExtension] stringByAppendingString:@"_s"] stringByAppendingPathExtension:ext];
因此,這里的邏輯是:
這樣,您可以避免依賴任何假設(例如,您始終具有3個字母的擴展名)。 最壞的情況是完全沒有擴展名,並以在其末尾附加了字符串的路徑結尾。 我希望這會有所幫助。
試試這個:
[mu insertString:@"_s" atIndex:[mu length] - 3];
未經測試。
不區分大小寫,將“ .jpg”的最后一個實例替換為“ _s.jpg”。 這樣可以避免由於某種原因在URL的其他位置出現“ .jpg”時發生URL混亂的情況。
NSString *extension = @".jpg";
NSMutableString *mu = [NSMutableString stringWithString:myUrl];
[mu insertString@"_s" atIndex[[[url lowercaseString] rangeOfString:extension options:NSBackwardsSearch].location];
NSString
有一個稱為length
的方法,該方法返回字符串的長度。 減去擴展名(4)的長度,便有了起始索引。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.