Поиск элемента в массиве - PullRequest
       7

Поиск элемента в массиве

0 голосов
/ 24 октября 2011

У меня есть следующий код:

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 ]

1 голос
/ 24 октября 2011

Я думаю, что вы хотите применить rangeOfCharacterFromSet: параметры: диапазон: несколько раз. Вам придется каким-то образом создать NSCharacterSet из символов в вашем массиве.

Добавлена ​​

Хотя, вероятно, было бы так же просто выполнить цикл по строке с characterAtIndex и сравнить каждый символ (во внутреннем цикле) с символами в вашем массиве (которые вы можете извлечь в массив unichar или поместить в один NSString для облегчения доступа).

0 голосов
/ 24 октября 2011

Есть лучшие способы сделать это, но я думаю, что вы пытаетесь это сделать:

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];
}
0 голосов
/ 24 октября 2011

Вы захотите создать NSCharacterSet с символами в строке, а затем запросить у каждой строки в массиве rangeOfCharacterFromSet:. Если вы найдете тот, где диапазон был фактически найден, то символ из строки находится в массиве. Если нет, то ни один из них не является.

Это может показаться немного окольным, но Unicode делает просмотр строк как просто последовательность "символов" довольно ненадежным, и вы захотите, чтобы ваши библиотеки выполняли для вас как можно больше тяжелой работы.

0 голосов
/ 24 октября 2011

Вы должны проверить длину вашей строки, а затем сопоставить ваши строковые символы с массивом и, если найдено, добавить этот символ в новую строку.

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

Надеюсь, это поможет .......

0 голосов
/ 24 октября 2011

Умм ... если вы хотите проверить, какие значения вы можете использовать, NSLog

NSLog"%f", myFloat;

Так что вы можете использовать это для проверки вашего массива ... Это то, о чем я думаю, что вы просите, но грамматика в вашем вопросе не очень хорошая.Пожалуйста, предоставьте больше деталей и лучшую грамматику.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...