Objective c ios中的字符串标记器

Objective c ios中的字符串标记器,objective-c,ios,stringtokenizer,Objective C,Ios,Stringtokenizer,我喜欢将字符串标记为字符,并将标记存储在字符串数组中。我正在尝试使用以下代码,因为我正在使用C表示法访问数组,所以这些代码不起作用。需要更改哪些内容来代替行程路径[i] NSArray *tokanizedTravelPath= [[NSArray alloc]init]; for (int i=0; [travelPath length]; i++) { tokanizedTravelPath[i]= [travelPath characterAtIndex:i]; 您需要NSMut

我喜欢将字符串标记为字符,并将标记存储在字符串数组中。我正在尝试使用以下代码,因为我正在使用C表示法访问数组,所以这些代码不起作用。需要更改哪些内容来代替行程路径[i]

NSArray *tokanizedTravelPath= [[NSArray alloc]init];
for (int i=0; [travelPath length]; i++) {
    tokanizedTravelPath[i]= [travelPath characterAtIndex:i];

您需要NSMutableArray来设置数组的每个元素,否则无法更改其对象。此外,您只能在数组中插入对象,因此可以: -插入包含该字符的字符串; -请改用C样式的数组。 这是如何使用NSMutableArray的:

NSMutableArray *tokanizedTravelPath= [[NSMutableArray alloc]init];
for (int i=0; i<[travelPath length]; i++) 
{
    [tokanizedTravelPath insertObject: [NSString stringWithFormat: @"%c", [travelPath characterAtIndex:i]] atIndex: i];
}

您不能将unichars存储在NSArray*中。你到底想完成什么?NSString*已经是unichars集合的一个很好的表示形式,您已经有了其中的一个。

我在您的代码中计算了3个错误,我在回答的最后解释了它们。 首先,我想向您展示一种更好的方法,将刺痛拆分为角色

虽然我同意Kevin的观点,NSString已经是unicode字符的一种很好的表示形式,但您可以使用这种基于块的代码将其拆分为子字符串并保存到数组中

形成文件:

列举 在字符串的指定范围内指定类型的子字符串

输出:

(
    H,
    e,
    l,
    l,
    o,
    " ",
    W,
    o,
    r,
    l,
    d
)
但实际上你的问题是另一种性质的:

不安全是不可改变的。一旦实例化,它就无法更改。对于可变数组,使用NSArray子类

此外,characterAtIndex不返回对象,而是返回基元类型,但这些类型不能保存到NSArray。您必须将其包装为NSString或其他表示形式

您可以改为使用substringWithRange

此外,for循环错误,for循环条件不正确。它必须适用于int i=0;i<[行程长度];我++


将字符串拆分为单个字符并不是将其标记化。此代码不起作用,因为for条件为false。看到我的帖子了。哦,是的,没有看到。
(
    H,
    e,
    l,
    l,
    o,
    " ",
    W,
    o,
    r,
    l,
    d
)
NSMutableArray *tokanizedTravelPath= [NSMutableArray array];
for (int i=0; i < [hwlloWord length]; ++i) {
    NSLog(@"%@",[hwlloWord substringWithRange:NSMakeRange(i, 1)]);
    [tokanizedTravelPath addObject:[hwlloWord substringWithRange:NSMakeRange(i, 1)]];
}