如何在iPhone中使用大写字符拆分字符串

时间:2009-10-19 11:39:09

标签: iphone

我想将字符串与大写字母的出现分开。 假设我有一个像“IAmABoy”的字符串。我希望得到的字符串像

I
Am
A
Boy.

怎么做?有没有示例代码?请告诉我这样做的方法。

6 个答案:

答案 0 :(得分:1)

如果只是迭代每个角色,那么简单的事情呢?假设inputString和outputString是NSStrings,这样的东西应该起作用:

  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];
    }
  }

答案 1 :(得分:1)

Thanx Carson为你回复。但是这行

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

引发了一些异常。我已将代码修改为以下代码,它似乎对我有用。


NSString *inputString=@"IAmABoy"; NSString *outputString; NSString *string=@""; 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); } }


Thanx再次向所有人提供合作和帮助。

答案 2 :(得分:0)

我建议导入Regex库或查看NSScanner。

答案 3 :(得分:0)

了解RegexKitLite

答案 4 :(得分:0)

尝试使用-rangeOfCharacterFromSet:并根据您找到大写字符的位置拆分字符串。

答案 5 :(得分: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