2012-10-10 153 views
0
1 US Dollar = 3.673 United Arab Emirates Dirham 

如何从此字符串获取值3.673从字符串中获取子字符串

我试过下面的代码,但没有工作。

NSString *a = [[xmlParser array]objectAtIndex:2]; 
NSRange startRange = [a rangeOfString:@"="]; 
NSLog(@"%u",startRange.location+1); 
NSRange endRange = [a rangeOfString:@" "]; 
NSLog(@"%u",endRange.location); 
NSString *subString = [a substringWithRange:NSMakeRange(startRange.location + 1, endRange.location)]; 
NSLog(@"%@",subString); 

回答

4

使用此:

NSArray *aArray = [a componentsSeparatedByString:@" "]; //your string here 
NSString *dollarValue = [aArray objectAtIndex:4]; //get dollar value from array 
NSLog(@"%@",dollarValue); 
+1

是的,这是比我的更好,如果你知道你想要的值始终是句子中的第5个(索引4)字。 – Fogmeister

+0

它早期工作正常,但突然我的应用程序崩溃我得到的错误在第一行和日志说。***终止应用程序由于未捕获的异常'NSInvalidArgumentException',原因:' - [CurrencyValues componentsSeparatedByString:]:无法识别的选择器发送到实例0x5913d00' – Sekhar

2

我会做这样的事情......

NSArray *words = [string componentsSeparatedByString:@" "]; 

for (NSString *word in words) { 
    //check for equals sign and then take the next one. 
} 
0
NSString *param = nil; 
    NSRange start = [a rangeOfString:@"="]; 
    if (start.location != NSNotFound) 
    { 
     param = [a substringFromIndex:start.location + start.length]; 
     NSRange end = [param rangeOfString:@"United"]; 
     if (end.location != NSNotFound) 
     { 
      param = [param substringToIndex:end.location]; 
     } 
    } 
    NSLog(@"param: %@",param); 
1
str = [NSString stringWithFormat:@"1 US Dollar = 3.673 United Arab Emirates Dirham"]; 
components = [str componentsSeparatedByCharactersInSet:[NSCharacterSet whitespaceCharacterSet]]; 
str = [components objectAtIndex:4]; 
NSLog(@"Str:%@", str); 
相关问题