我必须将第一个字符串的字母小写,删除空格并用大写的形式保留其余部分。因此,我的输出应类似于:
这是美国-> thisIsAmerica
Apple 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
我们将不胜感激!
答案 0 :(得分:0)
使用以下步骤:
使用函数componentsSeparatedByString:
在空格处分割字符串。结果是一个带有分隔单词的数组。它应该看起来像这样:
NSArray *wordsArray = [camelString componentsSeparatedByString:@" "];
遍历数组,并对每个字符串应用大写或小写,类似于您已经做过的事情。
[[iChar lowercaseString] characterAtIndex:0];
再次将数组中的字符串连接为一个字符串
我希望按照以下步骤编写代码没问题。
答案 1 :(得分:0)
-(NSString *)process {
NSMutableArray<NSString *> * output = [NSMutableArray array];
NSArray<NSString *> *components = [camelString componentsSeparatedByString:@" "];
if (components.count < 2) { return camelString.lowercaseString; }
[output addObject:components[0].lowercaseString];
for (NSInteger i = 1; i < components.count; ++i) {
[output addObject:components[i].capitalizedString];
}
return [output componentsJoinedByString:@""];
}