小写字符串并用破折号替换空格[重复]
Posted
技术标签:
【中文标题】小写字符串并用破折号替换空格[重复]【英文标题】:Lowercase strings and replace spaces with dashes [duplicate] 【发布时间】:2016-05-09 03:55:16 【问题描述】:我有以下数组:
["Main", "Category 1", "Category2", "Category 3"]
有没有办法复制这个数组,但把所有的字符串变成小写并用破折号(“-”)替换空格?
我知道我可以这样做来替换空格,但我不知道如何遍历数组。
[string stringByReplacingOccurrencesOfString:@" " withString:@"-"];
我的最终目标是拥有一个如下所示的数组:
["main", "category-1", "category2", "category-3"]
提前感谢您的帮助!
【问题讨论】:
@originaluser2 我正在使用 Objective-C。我只是在输入一个数组,这样你就可以看到我正在使用什么。 是的,我刚写完评论就想到了:P 【参考方案1】:您需要遍历数组并调用lowercaseString
以使字符串变小,然后为了替换空格,我使用componentsSeparatedByCharactersInSet:
将字符串拆分为组件,然后将组件与componentsJoinedByString:
组合起来
例如:
NSString *string = @"Company 1";
NSCharacterSet *doNotWant = [NSCharacterSet characterSetWithCharactersInString:@" "];
string = [[[string lowercaseString]
componentsSeparatedByCharactersInSet: doNotWant]
componentsJoinedByString: @"-"];
编辑:
假设数组是NSMutableArray
,您可以调用replaceObjectAtIndex:withObject
(否则您必须将每个索引复制到一个新数组中)
for (int i = 0; i < array.count; i++)
NSCharacterSet *doNotWant = [NSCharacterSet characterSetWithCharactersInString:@" "];
[array replaceObjectAtIndex:i withObject:[[[array[i] lowercaseString] componentsSeparatedByCharactersInSet: doNotWant] componentsJoinedByString: @"-"]];
【讨论】:
如何循环遍历数组?这是我不确定的部分。以上是关于小写字符串并用破折号替换空格[重复]的主要内容,如果未能解决你的问题,请参考以下文章
Asp.Net Routing - 用生成的 URL 中的破折号替换空格 %20 [重复]