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