2012-01-13 20 views
0
NSString * str=[zoneDict objectForKey:@"name"]; 
NSLog(@"==========string zone::==========%@",str); 
// str="(GMT +3:00) Baghdad, Riyadh, Moscow, St. Petersbur"; 

上記の文字列から3:00の値を取得するにはどうすればよいですか?iPhoneアプリケーションでNSStringから整数値を取得するにはどうすればよいですか?

+3

まあ、私はあなたが本当に整数を必要としないと思っています。符号(+)、整数時間(3)、整数分(00)が必要です。これは正しいです?また、文字列を解析する前に、 'zoneDict'の型は何ですか?タイムゾーンのデータ構造は、通常、文字列だけでなく、より使いやすい形式でオフセットを提供しますが、 'zoneDict'には文字列しかありませんか? – CRD

答えて

3
NSString *str = @"(GMT -3:00) Baghdad, Riyadh, Moscow, St. Petersbur"; 
NSRange endRange = [str rangeOfString:@")"]; 
NSString *timeString = [str substringWithRange:NSMakeRange(5, endRange.location-5)]; 
NSRange separatorRange = [timeString rangeOfString:@":"]; 
NSInteger hourInt = [[timeString substringWithRange:NSMakeRange(0, separatorRange.location)] intValue]; 
NSLog(@"Hour:%d",hourInt); 
+0

ありがとうございました..... –

+0

NSIntegerは実際にはintではありません^ _ ^私は実際には長いと思います。 –

1

ではなく、文字列からのオフセット時間を抽出しようとしている、あなたはzoneDictで、実際のタイムゾーンのデータを格納することができどのような方法はありますか?たとえば、NSTimeZoneのインスタンスを代わりに格納することができます。

文字列がすべてある場合は、NSRegularExpressionオブジェクトを使用して、代わりに正規表現を使用して関連情報を抽出できます。

あなたがしようとしていることをさらに説明できれば、あなたが望むものを達成する別の方法があるかもしれません。

1

私は-[NSString componentsSeparatedByString]:

NSString *str = @"(GMT -3:00) Baghdad, Riyadh, Moscow, St. Petersbur"; 
NSArray *myWords = [myString componentsSeparatedByString:@")"]; 
NSString *temp1 = [myWords objectAtIndex:0]; 
if ([temp1 rangeOfString:@"-"].location == NSNotFound) { 
    NSArray *temp2 = [temp1 componentsSeparatedByString:@"+"]; 
    NSString *temp3 = [temp2 objectAtIndex:1]; 
    NSLog(@"Your String - %@", temp3); 
} 
else { 
    NSArray *temp2 = [temp1 componentsSeparatedByString:@"-"]; 
    NSString *temp3 = [temp2 objectAtIndex:1]; 
    NSLog(@"Your String - %@", temp3); 
} 

を使用したい出力:(あなたは '3' のみを抽出することを余儀なくされている場合)

Your String - 3:00 
+0

が間違っています。値が+ GMT値で変更された場合、コードは機能しません。 –

+0

ええ、文字列の中で - または+をチェックする必要があると書いてあります。私は今解決しています – Hiren

0

正規表現を使用するには、私の見解では、より良いオプションです。正規表現の文字列には "\ d?"しかし、それについて私を引用しないでください、あなたは正確な文字列を検索する必要があります。おそらく、ここにいる誰かが正確な文字列を提供するかもしれません。

関連する問題