NSString *numberVector = @"(1, 2, 3, 4)";
Я хочу получить NSMutableArray из этих чисел. Как я могу это сделать?Как разбирать номера из NSString?
NSString *numberVector = @"(1, 2, 3, 4)";
Я хочу получить NSMutableArray из этих чисел. Как я могу это сделать?Как разбирать номера из NSString?
Это проще один, преобразовать его в формат JSON строки первого затем преобразовать это в массив с помощью NSJSONSerialization
NSString *numberVector = @"(1, 2, 3, 4)";
numberVector = [numberVector stringByReplacingOccurrencesOfString:@"(" withString:@"["];
numberVector = [numberVector stringByReplacingOccurrencesOfString:@")" withString:@"]"];
NSError* error;
NSMutableArray *arr = [NSJSONSerialization JSONObjectWithData:[numberVector dataUsingEncoding:NSUTF8StringEncoding] options:NSJSONReadingMutableContainers error:&error];
Update
Это будет работать как для @"(1, 2, 3, 4)"
и @"(\n 1,\n 2,\n 3,\n 4\n)"
в JSon строки может иметь новую строку и пробелы.
P.S Это будет работать для iOS 5.0 или выше для других iOS, вы можете использовать SBJSON или другую доступную библиотеку синтаксического анализа.
NSJSONSerialization ios> 5.0 (доступно в iOS 5.0 и более поздних версиях) –
@EvgeniyS для <5.0 вы можете использовать любую библиотеку json –
Да, ofcourse6, но я думаю, что ее важная информация ...) –
С этим:
NSString *numberVector = @"(1, 2, 3, 4)";
EDIT
NSError *error = NULL;
NSRegularExpression *regex = [NSRegularExpression regularExpressionWithPattern:@"&([^;])*;" options:NSRegularExpressionCaseInsensitive error:&error];
NSString *modifiedString = [numberVector stringByReplacingMatchesInString:string options:0 range:NSMakeRange(0, [string length]) withTemplate:@""];
NSArray *listItems = [[modifiedString stringByTrimmingCharactersInSet:[NSCharacterSet newlineCharacterSet]] componentsSeparatedByString:@", "]
** NO ** (0) –
Проверьте мой ответ еще раз – CainaSouza
Если вы знаете, что это именно ваш формат и не должны быть гибкими в количестве пробелов, скобок и запятых:
NSCharacterSet *trimSet = [NSCharacterSet characterSetWithCharactersInString:@"()"];
numberVector = [numberVector stringByTrimmingCharactersInSet:trimSet];
NSArray *numbers = [numberVector componentsSeparatedByString:@", "];
Как удалить "\ n"? – ttotto
Смотрите ниже код, он должен работать:
NSCharacterSet *cSet = [NSCharacterSet characterSetWithCharactersInString:@"()"];
numberVector = [numberVector stringByTrimmingCharactersInSet:cSet];
//specify delimiter below
NSArray *numbers = [numberVector componentsSeparatedByString:@", "];
попробуйте, как будто он отлично работает для любого типа данных, он принимает только числа.
NSString *numberVector = @"(\n 1,\n 2,\n 3,\n 4\n)";
NSString *onlyNumbers = [numberVector stringByReplacingOccurrencesOfString:@"[^0-9,]" withString:@"" options:NSRegularExpressionSearch range:NSMakeRange(0, [numberVector length])];
NSArray *numbers=[onlyNumbers componentsSeparatedByString:@","];
NSLog(@"%@",numbers);
использование regex для этого. –
не могли бы вы предоставить код для меня? – ttotto
у вас есть ответ от DrummerB –