2010-10-15 86 views
8

在Xcode中,如果我有一個NSString包含一個數字,即@「12345」,我該如何將它分解爲表示組成部分的數組,即「1」,「2」,「3」,「4」,「 5" ......還有就是NSString對象的componentsSeparatedByString,但在這種情況下,沒有分隔符...如何將NSString拆分爲組件?

回答

4

它可能看起來像characterAtIndex:會做的伎倆,但返回unichar,這是不是一個NSObject派生的數據類型不能直接放入數組中。你需要爲每個unichar構造一個新的字符串。

一個更簡單的解決方案是使用substringWithRange:與1個字符的範圍。通過簡單的for (int i=0;i<[myString length];i++)循環運行您的字符串,將每個1個字符的範圍添加到NSMutableArray

+0

這工作出色,感謝這麼多的快速反應:-) – 2010-10-15 12:59:24

1

A NSString已經它的組件數組,如果通過組件表示單個字符。使用[string length]來獲取字符串的長度,並使用[string characterAtIndex:]來獲取字符。

如果你確實需要一個只有一個字符的字符串對象數組,你將不得不自己創建該數組。使用for循環在字符串中循環字符,使用[NSString stringWithFormat:]創建一個包含單個字符的新字符串,並將其添加到您的數組中。但這通常不是必需的。

0

不知道,但如果這對你的作品想要做什麼:

const char *foo = [myString UTF8String] 
char third_character = foo[2]; 

確保對UTF8字符串

1

閱讀文檔在你的情況,因爲你有沒有分隔符,你有通過

- (void)getCharacters:(unichar *)buffer range:(NSRange)aRange 

或這一個

- (unichar)characterAtIndex:(NSUInteger) index inside a loop. 
獲取獨立的字符

這是我目前看到的唯一方法。

24

目前的NSString的做一個現成的成員函數:

NSString* foo = @"safgafsfhsdhdfs/gfdgdsgsdg/gdfsgsdgsd"; 
NSArray* stringComponents = [foo componentsSeparatedByString:@"/"];