Cocoa:按字符长度分析NSString
我有一个正在使用的NSString,但我想按字符长度解析它。因此,将其拆分为一个NSArray,让数组中的每个对象都是该字符串中的x个字符。所以基本上,把字符串分成一定长度的子字符串 那么,我该怎么做呢 例如: NSString*string=@“这是我的字符串” NSArray对象: “她” “e i” “s m” “y s” “tri”Cocoa:按字符长度分析NSString,cocoa,parsing,nsstring,nsarray,Cocoa,Parsing,Nsstring,Nsarray,我有一个正在使用的NSString,但我想按字符长度解析它。因此,将其拆分为一个NSArray,让数组中的每个对象都是该字符串中的x个字符。所以基本上,把字符串分成一定长度的子字符串 那么,我该怎么做呢 例如: NSString*string=@“这是我的字符串” NSArray对象: “她” “e i” “s m” “y s” “tri” “ng”这行吗?不过还没测试过 @interface NSString (MyStringExtensions) - (NSArray*)splitInto
“ng”这行吗?不过还没测试过
@interface NSString (MyStringExtensions)
- (NSArray*)splitIntoPartsWithLength:(NSUInteger)length;
@end
@implementation NSString (MyStringExtensions)
- (NSArray*)splitIntoPartsWithLength:(NSUInteger)length
{
NSRange range = NSMakeRange(0, length);
NSMutableArray *array = [NSMutableArray array];
NSUInteger count = [self length];
while (length > 0) {
if (range.location+length >= count) {
[array addObject:[self substringFromIndex:range.location]];
return [NSArray arrayWithArray:array];
}
[array addObject:[self substringWithRange:range]];
range.location = range.location + length;
}
return nil;
}
@end
编辑--
NSString *myString = @"Wish you a merry x-mas";
NSArray *array = [myString splitIntoPartsWithLength:10];
这行吗?不过还没测试过
@interface NSString (MyStringExtensions)
- (NSArray*)splitIntoPartsWithLength:(NSUInteger)length;
@end
@implementation NSString (MyStringExtensions)
- (NSArray*)splitIntoPartsWithLength:(NSUInteger)length
{
NSRange range = NSMakeRange(0, length);
NSMutableArray *array = [NSMutableArray array];
NSUInteger count = [self length];
while (length > 0) {
if (range.location+length >= count) {
[array addObject:[self substringFromIndex:range.location]];
return [NSArray arrayWithArray:array];
}
[array addObject:[self substringWithRange:range]];
range.location = range.location + length;
}
return nil;
}
@end
编辑--
NSString *myString = @"Wish you a merry x-mas";
NSArray *array = [myString splitIntoPartsWithLength:10];
我认为你需要更好地描述你想做的事情。是否要将字符串拆分为特定长度的子字符串?请在问题中显示一个示例字符串,以及如何拆分。这会给我们一个更好的主意。好了!希望这很清楚,我认为你需要更好地描述你想做的事情。是否要将字符串拆分为特定长度的子字符串?请在问题中显示一个示例字符串,以及如何拆分。这会给我们一个更好的主意。好了!希望它足够清晰,这样我就可以将字符串解析为x个字符长的片段了?我该怎么做,只需将int length修改为我想要的长度?这是一种方法,因此您可以在向自己发送此
splitString:intoPartLength:
message时指定长度。epatel:您永远不会减少length
的值,因此,while
循环将永远循环。彼得:他最终将进入if语句并退出while循环。我不认为这是最容易理解的代码,但它应该可以工作。好吧,我已经做到了,但是我在运行它时遇到了错误“无法识别的选择器发送到实例0xd21920”,这样可以将字符串解析为x个字符长的片段?我该怎么做,只需将int length修改为我想要的长度?这是一种方法,因此您可以在向自己发送此splitString:intoPartLength:
message时指定长度。epatel:您永远不会减少length
的值,因此,while
循环将永远循环。彼得:他最终将进入if语句并退出while循环。我不认为这是最容易理解的代码,但它应该可以工作。好的,我已经做到了,但是我在运行它时遇到了错误“无法识别的选择器发送到实例0xd21920”