我想将字符串与大写字母的出现分开。 假设我有一个像“IAmABoy”的字符串。我希望得到的字符串像
I
Am
A
Boy.
怎么做?有没有示例代码?请告诉我这样做的方法。
答案 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