ios - 如何在字符串操作时获取ios中某些特殊字符之间的数据

标签 ios string xcode4 substr

我正在尝试从一个字符串中获取一个子字符串。这是我的代码:

NSString *haystack = @"1:ketan jogal:1 2:ios developer:2";

NSString*p1=@"1:";
NSString*s1=@":1";

NSString *prefix = @"2:";
NSString *suffix = @":2"; 

NSRange needleRange = NSMakeRange(prefix.length,
                                  haystack.length - prefix.length - suffix.length);
NSRange needlerange1=NSMakeRange(p1.length,
                                  haystack.length - prefix.length - s1.length);


NSString *needle = [haystack substringWithRange:needleRange];
NSString*needle1=[haystack substringWithRange:needlerange1];

NSLog(@"needle1: %@",needle1);
NSLog(@"needle: %@", needle); 

但我每次都无法得到这样的输出。

2015-01-31 17:07:44.119 WriteintoTextFile[1685:60b] needle1: ketan jogal:1 2:ios developer

你能建议我怎样才能得到这种数据吗?

最佳答案

您可以通过两种方式实现:

1

使用componentsSeparatedByString NSString

的方法
NSString *haystack = @"1:ketan jogal:1 2:ios developer:2";
NSArray *arr       = [haystack componentsSeparatedByString:@":"];
NSLog(@"%@",arr[1]);
NSLog(@"%@",arr[3]);

2

使用NSScanner

NSScanner *scanner = [[NSScanner alloc] initWithString:haystack];
NSString *result   = nil;

[scanner scanUpToString:@"1:" intoString:nil];
[scanner scanString:@"1:" intoString:nil];
[scanner scanUpToString:@":1" intoString:&result];
NSLog(@"%@",result);

[scanner scanUpToString:@"2:" intoString:nil];
[scanner scanString:@"2:" intoString:nil];
[scanner scanUpToString:@":2" intoString:&result];
NSLog(@"%@",result);

关于ios - 如何在字符串操作时获取ios中某些特殊字符之间的数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28251172/

相关文章:

java - 在字符串 Arraylist 中查找和打印重复项

objective-c - 取消选择 RowAtIndexPath : failing in iOS5

javascript - 查找文本最多的元素

ios - 设置 UI 元素的默认颜色

ios - 在选择器中为 scheduleTimerwithTimeInterval 传递参数

ios - JWPlayer播放列表如何播放自定义索引?

java - 从文件中提取单词,然后计算频率

ios - 错误 : The application bundle does not contain a valid identifier

iphone - 如何更改 xCode 应用程序图标

ios - queryPedometerData 返回 nil 步数,即使记录了步数