簡體   English   中英

iOS-如何在字符串中的特定位置插入字符?

[英]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];

因此,這里的邏輯是:

  1. 獲取路徑的擴展名
  2. 刪除擴展名
  3. 添加您的字符串
  4. 添加擴展名

這樣,您可以避免依賴任何假設(例如,您始終具有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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM