2011-03-01 43 views
0

例如:創建一個字符串對象,字符串爲「Welcome to objective-C」 ,然後將字符串打印爲「Objective-C to Welcome」 這應該適用於任何字符串。請幫忙。謝謝:)如何更改或反轉Objective C中String對象中單詞的位置?

+0

你有什麼已經嘗試過?解決問題的一點想法有很長的路要走。 – 2011-03-01 11:30:13

+0

我已經嘗試了很多,其中之一與「substringFromIndex:index」做它,但它將只爲特定的工作,但我想一般,像任何三個字的字符串。我無法弄清楚:P – 2011-03-01 11:35:53

回答

3

在這裏你去,你應該閱讀的字符串。不是最有效的解決方案,但他的工作。

NSString *myString = @"This is a test"; 
NSArray *myWords = [myString componentsSeparatedByString:@" "]; 
// myWords is now: [@"This", @"is", @"a", @"test"] 
NSMutableArray *reversed = [NSMutableArray arrayWithCapacity:[myWords count]]; 
NSEnumerator *enumerator = [myWords reverseObjectEnumerator]; 
for (id element in enumerator) { 
    [reversed addObject:element]; 
} 
NSString *reverseString = [reversed componentsJoinedByString:@" "]; 
NSLog(@"%@", reverseString); 

如果您有任何問題,請告訴我。

更新

您可以嘗試只是一個簡單的循環。喜歡這個。

NSString *myString = @"This is a test"; 
NSArray *myWords = [myString componentsSeparatedByString:@" "]; 
NSMutableString* theString = [NSMutableString string]; 
for (int i=[myWords count]-1; i>=0;i--){ 
    [theString appendFormat:@"%@ ", [myWords objectAtIndex:i]]; 
} 
+0

嗨!感謝您的回答,問題是我現在正在使用GNUStep編譯器,所以我不知道什麼是支持的,哪些不支持。 For循環顯示錯誤,我認爲編譯器不支持NSEnumerator :( – 2011-03-01 12:00:05

+0

請參閱我的更新 – dombesz 2011-03-01 12:21:55

+0

@dombsez:謝謝了!!它工作正常,完全按照我的意願:) – 2011-03-03 09:48:38

0

可能的話,我想,直到你遇到一個空間,並將其存儲在數組中,然後使用 - (void)exchangeObjectAtIndex:(NSUInteger)idx1 withObjectAtIndex:(NSUInteger)idx2

+0

好的......謝謝!這可能會工作:) – 2011-03-01 11:45:35

0
NSString *myStr = @"India is my Country"; 

NSArray* array= [myStr componentsSeparatedByString:@" " ]; 
NSArray* reversedArray = [[array reverseObjectEnumerator] allObjects]; 
NSLog(@"%@",reversedArray); 

NSString * result = [reversedArray componentsJoinedByString:@" "]; 
NSLog(@"%@",result); 
相關問題