Форум программистов, компьютерный форум CyberForum.ru

Objective-C

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 9, средняя оценка - 4.78
Woddi
0 / 0 / 0
Регистрация: 01.10.2013
Сообщений: 39
#1

Поиск в массиве - Objective-C

03.05.2014, 13:43. Просмотров 1206. Ответов 3
Метки нет (Все метки)

есть массив "lines" полученный из файла
и стринг "resultText",пытаюсь найти в массиве получаемый стринг

Objective-C
1
2
3
if ([lines containsObject:resultText]) {
                    NSLog(@"vse ok");
                }
и не находит его...хотя уже вписываю одинаковые значения

Objective-C
1
2
NSLog(@"test lines %@",[lines objectAtIndex:0]);
NSLog(@"test  res %@",resultText);
test lines аарон
test res аарон
как мне сделать этот поиск по массиву?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
03.05.2014, 13:43     Поиск в массиве
Посмотрите здесь:

Поиск в массиве данных по заданным параметрам - Objective-C
Добрый день Я изучаю программирование на Objective-C и у меня возникла следующая проблема. Я хочу сделать приложение, что-то вроде...

В одномерном массиве состоящем из n вещественных элементов сделать бинарный поиск числа А в упорядоченном массиве - Turbo Pascal
Всем привет помогите решить задачи 1) В одномерном массиве состоящем из n вещественных элементов: сделать бинарный поиск числа А в...

Поиск в массиве. Время, затраченное на поиск. - Java SE
Вот код: import java.io.*; public class mas { /** * @param args */

Поиск подмассива в массиве. Поиск значения - Pascal
Помогите исправить программу. вот условие и текст Даны два целочисленных массива X(n) и Y(m) .(m<=n). Определить, является ли массив Y...

Поиск в массиве - C++
Срочно нужна помощь! Помогите, кто может... Есть массив С(100), в нем нужно посчитать кол-во последовательностей положительных чисел,...

Поиск в массиве - PHP
Здравствуйте, работаю с api twitch там нет проверки на то, подписан пользователь на канал или нет, поэтому приходится делать через бубен...

Поиск в массиве - Pascal ABC
Есть два кода программ, два разных метода поиска. Подскажите как их соединить в одну программу, чтобы юзер сам выбирал каким методом он...

Поиск в Массиве - C#
Нужно реализовать поиск макс. среди отр. и мин. среди положительных чисел в массиве с помощью методов Array; Открыл msdn , и нашел такие...

Поиск в массиве - Delphi
Здравствуйте ! помогите пожалуста . Нужно выташить все значения между тэгами <td> </td> из масива =====<trclass="wnow_tmpr"> ...

Поиск в массиве - Java SE
Сделал вот программу, что ищет сколько раз встречается число Х в одномерному массиве, но препод сказал е1 переделать так что бы прога...

Поиск в массиве - C#
Голова уже совсем не варит. Имеется список List допустим из 5 элементов <int>. Имеется i-тый элемент этого списка, равный допустим 30 (arr...

Поиск в массиве - C++
Найти наименьшую из нечетных компонент вектора и наибольшую из четных компонент. Если они имеют разные знаки, то вычислить сумму элементов...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
noname_club
102 / 90 / 9
Регистрация: 01.05.2013
Сообщений: 583
03.05.2014, 17:43     Поиск в массиве #2
есть массив "lines" полученный из файла
подробнее. Файл текстовый?

и стринг "resultText",пытаюсь найти в массиве получаемый стринг
дан массив

Objective-C
1
NSArray *k = @[ @"hello" , @"world" , @"tree", @"lemon" ];
определить индекс строки с со содержимым
Objective-C
1
2
3
4
5
6
7
8
9
10
int index = -1;
int i = 0;
for (NSString * kk in k) {
if ([kk isEqualToString: @"tree"]) {
   index = i;
   break;
}
i++;
}  // end for
NSLog(@"%d", index);
~~~~~~~~~~~~~~~~~~~~~
пример #2 определить номер символа вхождения строки в текстовую строку через регулярные выражения

модуль функций регулярный выражений, синтаксис индентичен php выражениям
Кликните здесь для просмотра всего текста

PHP_RegularExpression.h
Objective-C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
/**
 PHP_RegularExpression.h
 модуль php совместимых регулярных выражений
 */
 
 #import <Foundation/Foundation.h>
 
#ifndef _PHP_RegularExpression
#define _PHP_RegularExpression
 
#pragma mark Регулярные выражения
 
/*
 NSRegularExpressionCaseInsensitive             i
 NSRegularExpressionAllowCommentsAndWhitespace  c
 NSRegularExpressionIgnoreMetacharacters        m
 NSRegularExpressionDotMatchesLineSeparators    s
 NSRegularExpressionAnchorsMatchLines           l
 NSRegularExpressionUseUnixLineSeparators       x
 NSRegularExpressionUseUnicodeWordBoundaries    u
 
[url]http://developer.apple.com/library/ios/#documentation/Foundation/Reference/NSRegularExpression_Class/Reference/Reference.html#//apple_ref/doc/uid/TP40009708-CH1-SW48[/url]
*/
 
NSRegularExpressionOptions php_preg_option_extract(NSMutableString* pattern);
 
NSString * php_preg_match (NSString * pattern, NSString* subject);
NSString * php_preg_replace(NSString* pattern ,NSString* replacement ,NSString* subject);
 
NSMutableArray * php_preg_match_all (NSString * pattern, NSString* subject);
NSMutableArray * php_preg_match_range (NSString * pattern, NSString* subject);
 
// -------------
 
#endif
PHP_RegularExpression.m
Objective-C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
 /**
 
 PHP_RegularExpression.m
 
 модуль php совместимых регулярных выражений
 */
 
#pragma mark Регулярные выражения
 
NSRegularExpressionOptions php_preg_option_extract(NSMutableString* pattern) {
    NSString *s1 = [pattern substringToIndex:1];
    if ([s1 isEqualToString:@"#"]) {
        // обнаружены флаги
        for (int z=pattern.length-1; z>=1; z--) {
            if ([[pattern substringWithRange:NSMakeRange(z, 1)] isEqualToString:s1]) {
                // обнаружено
                // разбор флагов
                NSRegularExpressionOptions ret = 0;
                NSString *flags = [pattern substringWithRange:NSMakeRange(z+1, pattern.length-z-1)];
                for (int i=0; i<flags.length; i++) {
                    NSString *f = [flags substringWithRange:NSMakeRange(i, 1)];
                    if ([f isEqualToString:@"i"]) {
                        ret = (ret | NSRegularExpressionCaseInsensitive);
                        continue;
                    }
                    if ([f isEqualToString:@"s"]) {
                        ret = (ret | NSRegularExpressionDotMatchesLineSeparators);
                        continue;
                    }
                    if ([f isEqualToString:@"l"]) {
                        ret = (ret | NSRegularExpressionAnchorsMatchLines);
                        continue;
                    }
                    if ([f isEqualToString:@"u"]) {
                        ret = (ret | NSRegularExpressionUseUnicodeWordBoundaries);
                        continue;
                    }
                    if ([f isEqualToString:@"x"]) {
                        ret = (ret | NSRegularExpressionUseUnixLineSeparators);
                        continue;
                    }
                    if ([f isEqualToString:@"c"]) {
                        ret = (ret | NSRegularExpressionAllowCommentsAndWhitespace);
                        continue;
                    }
                    if ([f isEqualToString:@"m"]) {
                        ret = (ret | NSRegularExpressionIgnoreMetacharacters);
                        continue;
                    }
                }
                // сохраняем выражение
                [pattern setString:[pattern substringWithRange:NSMakeRange(1, z-1)]];
                return ret;
            } // end if
        } // end for
    } // end if
    return 0;
    
}
 
NSString * php_preg_match (NSString * pattern, NSString* subject) {
    if ([pattern length] ==0) { return nil; }
    if ([subject length] ==0) { return nil; }
    
    NSMutableString *pattern_ok = [NSMutableString stringWithString:pattern];
    NSRegularExpressionOptions opt = php_preg_option_extract(pattern_ok);
    
    NSRegularExpression *reg = [NSRegularExpression regularExpressionWithPattern:pattern_ok options:opt error:NULL];
    NSTextCheckingResult *res = [reg firstMatchInString:subject options:NSMatchingReportProgress range:NSMakeRange(0, subject.length)];
    
    if (res.range.length==0) {
        return nil;
    } else {
        return [subject substringWithRange:res.range];
    }
}
 
NSMutableArray * php_preg_match_all (NSString * pattern, NSString* subject) {
    if ([pattern length] ==0) { return nil; }
    if ([subject length] ==0) { return nil; }
    
    NSMutableString *pattern_ok = [NSMutableString stringWithString:pattern];
    NSRegularExpressionOptions opt = php_preg_option_extract(pattern_ok);
    
    NSRegularExpression *reg = [NSRegularExpression regularExpressionWithPattern:pattern_ok options:opt error:NULL];
    NSArray *res = [reg matchesInString:subject options:NSMatchingReportProgress range:NSMakeRange(0, subject.length)];
    //NSMatchingReportProgress range:NSMakeRange(0, subject.length)];
    NSMutableArray *res2 = [NSMutableArray new];
    
    for (id obj in res) {
        [res2 addObject: [subject substringWithRange:[obj range]]];
    }
    
    return res2;
}
 
NSMutableArray *php_preg_match_range (NSString * pattern, NSString* subject) {
    if ([pattern length] ==0) { return nil; }
    if ([subject length] ==0) { return nil; }
    
    NSMutableString *pattern_ok = [NSMutableString stringWithString:pattern];
    NSRegularExpressionOptions opt = php_preg_option_extract(pattern_ok);
    
    NSRegularExpression *reg = [NSRegularExpression regularExpressionWithPattern:pattern_ok options:opt error:NULL];
    NSArray *res = [reg matchesInString:subject options:NSMatchingReportProgress range:NSMakeRange(0, subject.length)];
    //NSMatchingReportProgress range:NSMakeRange(0, subject.length)];
    NSMutableArray *res2 = [NSMutableArray new];
    
    for (id obj in res) {
        [res2 addObject: [NSValue valueWithRange:[obj range]]];
    }
    
    return res2;
}
 
NSString * php_preg_replace(NSString* pattern ,NSString* replacement ,NSString* subject) {
    if ([pattern length] ==0) { return nil; }
    if ([subject length] ==0) { return nil; }
    
    NSMutableString *pattern_ok = [NSMutableString stringWithString:pattern];
    NSRegularExpressionOptions opt = php_preg_option_extract(pattern_ok);
    
    NSRegularExpression *reg = [NSRegularExpression regularExpressionWithPattern:pattern_ok options:opt error:NULL];
    
    return [reg stringByReplacingMatchesInString:subject options:NSMatchingReportProgress range:NSMakeRange(0, subject.length) withTemplate:replacement];
}
PHP_RegularExpression.zip



Objective-C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include "PHP_RegularExpression.h"
 
// bla bla
 
-(void) mymethod {
 
 
NSString * text = @"hello world Tree lemon";
 
NSArray * result = php_preg_match_range ('#tree#i', text );
 
if ([result count] > 0) {
   NSRange r = [result[0] rangeValue];
   NSLog(@"найденный текст %d %@", r.location, [text substringWithRange: r]); 
}
 
} // <<
Woddi
0 / 0 / 0
Регистрация: 01.10.2013
Сообщений: 39
03.05.2014, 18:46  [ТС]     Поиск в массиве #3
Objective-C
1
2
3
4
NSString *filePath = [[NSBundle mainBundle] pathForResource:@"word_base"
                                                         ofType:@"txt"];
NSString *fileString = [NSString stringWithContentsOfFile:filePath encoding:NSUTF8StringEncoding error:nil];
lines = [fileString componentsSeparatedByString:@"\n"];
вот мой массив,мне надо просто проверить на наличие в нем какого-то слова
zulkis
681 / 608 / 38
Регистрация: 13.01.2011
Сообщений: 1,724
04.05.2014, 19:42     Поиск в массиве #4
Дискуссия перемещена в Использование регулярных выражений
Yandex
Объявления
04.05.2014, 19:42     Поиск в массиве
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru