NSString *numberVector = @"( 1, 2, 3, 4)";
これらの数値から NSMutableArray を取得したいと考えています。これどうやってするの?
NSString *numberVector = @"( 1, 2, 3, 4)";
これらの数値から NSMutableArray を取得したいと考えています。これどうやってするの?
これはより単純なもので、最初に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];
アップデート
これは両方@"( 1, 2, 3, 4)"
で機能し@"(\n 1,\n 2,\n 3,\n 4\n)"
、json 文字列には改行とスペースを含めることができるためです。
PSこれは iOS 5.0 以降で動作し、他の iOS では SBJSON または利用可能な他の解析ライブラリを使用できます。
このようにしてみてください。数値のみを受け入れるあらゆるタイプのデータに対して正常に機能します。
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);
これがまさにあなたのフォーマットであり、スペース、括弧、またはコンマの量を柔軟にする必要がないことがわかっている場合:
NSCharacterSet *trimSet = [NSCharacterSet characterSetWithCharactersInString:@" ()"];
numberVector = [numberVector stringByTrimmingCharactersInSet:trimSet];
NSArray *numbers = [numberVector componentsSeparatedByString:@", "];
これとともに:
NSString *numberVector = @"( 1, 2, 3, 4)";
編集
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:@", "]