objective-c - 使用 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
帮助将不胜感激!
解决方案
使用以下步骤:
使用该函数
componentsSeparatedByString:
在空格处拆分字符串。结果是一个带有分隔词的数组。它应该看起来像这样:NSArray *wordsArray = [camelString componentsSeparatedByString:@" "];
循环遍历数组并对每个字符串应用大写或小写,类似于您已经做过的。
[[iChar lowercaseString] characterAtIndex:0];
将数组中的字符串再次连接成一个字符串
我希望按照这些步骤编写代码没有问题。