小写字符串并用破折号替换空格[重复]

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: @"-"]];

【讨论】:

如何循环遍历数组?这是我不确定的部分。

以上是关于小写字符串并用破折号替换空格[重复]的主要内容,如果未能解决你的问题,请参考以下文章

使用 PHP 将空格转换为破折号和小写

用破折号替换空格并复制到新列

Asp.Net Routing - 用生成的 URL 中的破折号替换空格 %20 [重复]

正则表达式用破折号、空格破折号、点空间、点和带有空字符串的撇号替换空格

使用 tr 用空格替换换行符[重复]

用单个空格替换字符串中的多间距 - Python [重复]