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它作为自动释放的对象返回,因此您可能需要retain它,除非您使用的是 ARC。

此外,返回的数组是不可变的,因此您需要自己创建一个并使用返回的数组对其进行初始化:

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 回答