我是Cocoa的新人。
我有NSString - (例如)MUSIC。我想在Array中添加一些新的NSString, 并想要检查这样的东西
如果MUSIC已包含在Array中,请在Music_2之后添加Music_1,依此类推。
所以我需要能够从NSString中读取该整数,并将其附加+1。
由于
答案 0 :(得分:4)
使用
NSString *newString = [myString stringByAppendingString:[NSString stringWithFormat:@"_%i", myInteger]];
如果myString是“music”,则newString将为“music_1”或myInteger。
编辑:我似乎从提供的其他答案中得到了相反的含义。你能澄清一下你究竟在问什么吗?答案 1 :(得分:1)
检查出来:
NSMutableArray *array = [NSMutableArray arrayWithObjects:@"123", @"qqq", nil];
NSString *myString = @"MUSIC";
NSInteger counter = 0;
if ([array containsObject:myString]){
NSString *newString = [NSString stringWithFormat:@"%@_%d", myString, ++counter];
[array addObject:newString];
}
else
[array addObject:myString];
答案 2 :(得分:1)
要检查Array中的重复元素,您可以使用-containsObject:
方法。
[myArray containsObject:myobject];
如果您有一个非常大的数组,请在数组旁边保留NSMutableSet
。在添加到数组之前,检查项目是否存在。如果它已经在集合中,请不要添加它。如果没有,请将其添加到两者
如果你想要唯一的对象而不关心插入顺序,那么根本不要使用数组,只需使用Set。 NSMutableSet
是一个更有效的容器
要从NSString
读取整数,您可以使用intValue
方法。
[myString intValue];
要附加带数字的字符串,您可以使用- (NSString *)stringByAppendingString:(NSString *)aString
或- (NSString *)stringByAppendingFormat:(NSString *)format ...
方法。
答案 3 :(得分:0)
以下是将字符串转换为int
的方法NSString *myStringContainingInt = @"5";
int myInt = [myStringContainingInt intValue];
myInt += 1;
// So on...