2

私がこれを持っているとしましょう:

NSString *str = @"This is a sample string";

各単語がNSMutableArrayに追加されるように文字列を分割するにはどうすればよいですか?

VB.netでは、次のことができます。

Dim str As String
    Dim strArr() As String
    Dim count As Integer
    str = "vb.net split test"
    strArr = str.Split(" ")
    For count = 0 To strArr.Length - 1
        MsgBox(strArr(count))
    Next

では、Objective-Cでこれを行う方法は?ありがとう

4

3 に答える 3

7
NSArray *words = [str componentsSeparatedByString: @" "];

wordsは自動解放されたオブジェクトとして返されるため、retainARCを使用していない限り、必要になる場合があります。

また、返された配列は変更できないため、自分で作成し、返された配列で初期化する必要があります。

NSArray *words = [str componentsSeparatedByString: @" "];
NSMutableArray *mutableWords = [NSMutableArray arrayWithCapacity:[words count]];
[mutableWords addObjectsFromArray:words];

また:

NSMutableArray *mutableWords = [[str componentsSeparatedByString: @" "] mutableCopy];

この最後のステートメントは、オブジェクトの所有権を与えるために解放する必要があるオブジェクトを返します。copy

于 2012-07-04T09:12:21.277 に答える
1

NSStringには、渡した文字のセットに基づいて文字列を分割し、NSArrayを返す組み込みのメソッドがあります。

- (NSArray *)componentsSeparatedByCharactersInSet:(NSCharacterSet *)separator

詳細については、NSStringクラスリファレンスを参照してください。

于 2012-07-04T09:16:49.200 に答える
0

実用的なソリューション。やってみよう!

NSString *string = @"This is words";
NSArray *wordsArray  = [string componentsSeparatedByString:@" "];

wordsArrayの値を出力してみましょう。

NSlog(@"wordsArray value is : %@", wordsArray);

出力は次のとおりです。

wordsArray value is : (
    This,
    is,
    words
)
于 2017-02-24T05:51:19.957 に答える