2009-10-19 72 views
-1

我想使用大写字母来分隔字符串。 假设我有一个像“IAmABoy”的字符串。我想要一个像如何在iPhone中使用大写字符分割字符串

I 
Am 
A 
Boy. 

生成的字符串如何做到这一点?有没有示例代码?请告诉我这样做的方法。

+1

如果他们是评论,不要添加答案。相反,使用“添加评论”链接来添加评论到现有的答案。 – 2009-10-19 12:41:36

回答

1

那么简单就像迭代每个字符一样呢?假定inputString和outputString是NSString的这样的事情应该工作:

NSUInteger length = [inputString length]; 
    for (NSUInteger i = 0; i < length; i++) 
    { 
    char c = [inputString characterAtIndex:i]; 
    if (i > 0 && c >= 65 && c <=90) 
    { 
     [outputString appendFormat:@"\n%c", c]; 
    } 
    else 
    { 
     [outputString appendFormat:@"%c", c]; 
    } 
    } 
0

我建议导入一个正则表达式库或看看NSScanner。

0

尝试使用-rangeOfCharacterFromSet:基于你在哪里找到大写字符分割的字符串。

1

感谢名单卡森为您reply.But行

[outputString appendFormat:@"\n%c", c];

througing一些exception.I有修改代码以下面的一个它似乎在为我工作。


NSString *[email protected]"IAmABoy"; NSString *outputString; NSString *[email protected]""; NSUInteger length = [inputString length]; for (NSUInteger i = 0; i < length; i++) { char c = [inputString characterAtIndex:i]; if (i > 0 && c >= 65 && c <=90) { //[outputString appandFormate:@"\n%c", c]; outputString=[NSString stringWithFormat:@"%c", c]; string = [NSString stringWithFormat:@"%@%@%@",string,@" ",outputString]; NSLog(@"%@", string); } else { //[outputString appendFormat:@"%c", c]; outputString=[NSString stringWithFormat:@"%c", c]; //NSLog(@"%@",outputString); string = [NSString stringWithFormat:@"%@%@",string,outputString]; NSLog(@"%@", string); } }


感谢名单再次向所有的合作和帮助。

0

extension String { public func stringFromPascalCase() -> String { return self.characters.enumerate().map { (String($1).componentsSeparatedByCharactersInSet(.uppercaseLetterCharacterSet()).joinWithSeparator("").isEmpty && $0 > 0) ? " \($1)" : "\($1)" }.joinWithSeparator("") } }

这应该做的伎俩。

let x = "EastMayerDrive".stringFromPascalCase() print(x) /// East Mayer Drive