在数组中查找元素

时间:2011-10-24 16:45:15

标签: iphone objective-c nsarray

我有以下代码:

NSArray *myArray = [NSArray arrayWithObjects: @"e", @"è", @"é",@"i","ò",nil];

NSString *string = @"simpleè";
NSMutablestring *newString;

for(i=0>;i< [string length]; i++){
  if([stringa characterAtIndex:i] is in Array){
   [newString appendFormat:@"%c", [string characterAtIndex:i]];
 }
}

如何查找字符串中的单个字符串是否保留在数组中? 结果示例:
newString = @“ieè”;

5 个答案:

答案 0 :(得分:1)

我想你想反复申请rangeOfCharacterFromSet:options:range:。你必须以某种方式从数组中的字符创建NSCharacterSet

虽然用characterAtIndex循环遍历字符串可能同样简单,并将每个char(在内部循环中)与数组中的字符进行比较(可以将其提取到{{1}中}数组或放入单个unichar以便于访问)。

答案 1 :(得分:0)

嗯......如果你想查看值是什么,你可以使用NSLog

NSLog"%f", myFloat;

所以你可以用它来检查你的阵列......我认为你要求的是哪个,但你问题中的语法不是很好。请提供更多细节和更好的语法。

答案 2 :(得分:0)

您应检查字符串的长度,然后将字符串字符与数组匹配,如果找到,则将该字符附加到新字符串中。

 NSString *mstr = @"asdf";
  NSString *b = [ mstr characterAtIndex:0];  

希望它有所帮助.......

答案 3 :(得分:0)

您需要创建一个包含字符串中字符的NSCharacterSet,然后向数组中的每个字符串询问其rangeOfCharacterFromSet:。如果找到一个实际找到范围的字符,那么字符串中的字符就在数组中。如果没有,那么它们都不是。

这可能看起来有点迂回,但是Unicode使字符串看起来只是一系列“字符”而不是不可靠,而且你会想让你的图书馆尽可能多地为你做重担。 / p>

答案 4 :(得分:0)

有更好的方法可以做到这一点,但这是我认为你要做的事情:

NSMutableString* result= [NSMutableString stringWithString:@""];

for( int i= 0; i < [string length]; ++i ) {

    NSString* c= [NSString stringWithFormat:@"%C", [string characterAtIndex:i]];

    if( [myArray containsObject:c] )
        [result appendString:c];
}