2009-10-19 43 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