首页 > 解决方案 > 使用 for 循环来区分短语

问题描述

我必须将第一个字符串的字母小写,删除空格并将短语的其余部分大写。所以我的输出应该如下所示:

这是美国 -> 这是美国

苹果 macbook -> appleMacbook

supercalifragalisticexpialidocious -> 保持不变

我能够尽可能删除空格并将字母大写,然后使用 for 循环获取索引 0 并尝试将其小写,但它似乎不起作用。我的代码如下:

#import "CaseMaker.h"

@implementation CaseMaker
- (instancetype)initWithString:(NSString *)string{
    self = [super init];
    if (self) {
        self.camelString = string;
    }
    return self;
}

-(NSString *)process {
    NSString * output = [[NSString alloc] init];


    for (int i = 0; [_camelString length]; i++) {
        NSString *iChar = [NSString stringWithFormat:@"%c", [_camelString characterAtIndex:0]];
        [[iChar lowercaseString] characterAtIndex:0];
    }
    output = [[_camelString capitalizedString] stringByReplacingOccurrencesOfString:@" " withString:@""];

return output;

}

@end

帮助将不胜感激!

标签: objective-cloopsnsstring

解决方案


使用以下步骤:

  1. 使用该函数componentsSeparatedByString:在空格处拆分字符串。结果是一个带有分隔词的数组。它应该看起来像这样:

    NSArray *wordsArray = [camelString componentsSeparatedByString:@" "];

  2. 循环遍历数组并对每个字符串应用大写或小写,类似于您已经做过的。

    [[iChar lowercaseString] characterAtIndex:0];

  3. 将数组中的字符串再次连接成一个字符串

我希望按照这些步骤编写代码没有问题。


推荐阅读