【问题标题】: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

标签: ios objective-c arrays


【解决方案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: @"-"]];
}

【讨论】:

  • 如何循环遍历数组?这是我不确定的部分。
猜你喜欢
  • 2019-09-11
  • 1970-01-01
  • 2012-12-25
  • 2011-08-17
  • 2013-07-19
  • 2013-08-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多