使用 for 循环来驼峰式大小写一个短语
using for loops to camel case a phrase
我必须将第一个字符串的字母小写,删除 space 并将短语的其余部分大写。所以我的输出应该是这样的:
这是美国 -> thisIsAmerica
苹果 macbook -> appleMacbook
supercalifragalisticexpialidocious -> 保持不变
我能够删除 space 并将字母大写,然后使用 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];
再次将数组中的字符串拼接成一个字符串
希望按照这些步骤写代码没问题。
- 创建可变数组。
- 通过用 space 个字符分隔项目来形成输入字符串的数组。
- 如果字符串中没有 spaces return 则字符串小写。
- 将第一项变为小写并将其添加到输出数组。
- 迭代从索引 1 开始的组件,将所有对象大写并将它们添加到输出数组。
- 最后通过空字符串和return结果连接数组。
-(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:@""];
}
我必须将第一个字符串的字母小写,删除 space 并将短语的其余部分大写。所以我的输出应该是这样的:
这是美国 -> thisIsAmerica
苹果 macbook -> appleMacbook
supercalifragalisticexpialidocious -> 保持不变
我能够删除 space 并将字母大写,然后使用 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];
再次将数组中的字符串拼接成一个字符串
希望按照这些步骤写代码没问题。
- 创建可变数组。
- 通过用 space 个字符分隔项目来形成输入字符串的数组。
- 如果字符串中没有 spaces return 则字符串小写。
- 将第一项变为小写并将其添加到输出数组。
- 迭代从索引 1 开始的组件,将所有对象大写并将它们添加到输出数组。
- 最后通过空字符串和return结果连接数组。
-(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:@""];
}