2013-01-04 33 views
1

我有一個字符串,它賦予日期(下同)如何使用stringByTrimmingCharactersInSet中的NSString

NSString*str1=[objDict objectForKey:@"date"]; 

NSLog(@" str values2%@",str1); --> 04-Jan-13 

現在的問題是我需要修剪從這裏"-13"。我知道NSDateFormatter格式化date.but我可以「T做到這一點需要這兒過得修剪是

對於我使用: -

NSCharacterSet *charc=[NSCharacterSet characterSetWithCharactersInString:@"-13"]; 

[str1 stringByTrimmingCharactersInSet:charc]; 

但這並不work.this不修剪......怎麼辦that..help

回答

3

但這並不work.this不修剪...

它修剪,但由於NSString不變,修剪過的字符串被扔掉了,因爲你沒有把它分配給任何東西。

這會工作(但不要那樣做!)

str1 = [str1 stringByTrimmingCharactersInSet:charc]; 

你做什麼,不修剪,它採取一子。 NSString提供了一個更好的方法:

str1 = [str1 substringToIndex:6]; // Take the initial 6 characters 
+0

但這個工程:) – Christien

+0

@Christien不,它不:(至少,它不*總是*工作:試試'13-jan-13'看看爲什麼。 – dasblinkenlight

+0

它應該工作bcz我已經採取-13不只是13 ...不是它?? – Christien

4

不知道爲什麼不使用NSDateFormatter但這裏的(在我看來非常糟糕的編碼習慣),以接近這是一個非常特殊的方式:

NSString *theDate = str1; 
NSArray *components = [theDate componentsSeparatedByString:@"-"]; 
NSString *trimmedDate = [NSString stringWithFormat:@"%@-%@",[components objectAtIndex:0],[components objectAtIndex:1]]; 
+0

謝謝你!這給了我正確的one.didnt得到邏輯... stringWithFormat:@「%@ - %@」 – Christien

2

事情是這樣的:

NSString *trimmed = [textStr stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceCharacterSet]]; 

或本:

NSString *trimmed = [textStr stringByTrimmingCharactersInSet:[NSCharacterSet characterSetWithCharactersInString:@"-13"]; 
3

你所做的是正確的。唯一的是stringByTrimmingCharactersInSet返回NSString。所以,你需要的,如果你確定你有你的弦總是格式化像「NN-CCC-NN」你可以修剪前6個字符這個值賦給NSString,像

str1 = [str1 stringByTrimmingCharactersInSet:charc]; 
1

NSString* stringToTrim = @"04-Jan-13"; 
NSString* trimmedString = [stringToTrim substringToIndex:6]; 
NSLog(@"trimmedString: %@", trimmedString); // -> trimmedString: 04-Jan 
相關問題