NSString填充/ 2个字符之间的空格

时间:2013-02-23 08:38:21

标签: ios objective-c macos nsstring nsarray

我正在寻找一种简单的方法在Objective-C中为我的字符串的每2个字符添加一个空格。所以“12345678”会看起来像“12 34 56 78”。

其他方式,将字符串(一个包含所有数字的128位长字符串)转换为每2个字符的数组。

有谁知道有什么可以帮助我吗?

感谢。 - Eli

3 个答案:

答案 0 :(得分:0)

试试这个:

    NSString *str = @"12345678";
    NSMutableString *tempStr = [[NSMutableString alloc] init];

    for (int position=0; position < str.length; position++) {

        if(position%2==0)
        {
            [tempStr appendString:[NSString  stringWithFormat:@"%c",[str characterAtIndex:position]]];
        }
        else
        {
            [tempStr appendString:[NSString  stringWithFormat:@"%c",[str characterAtIndex:position]]];

            NSLog(@"%@\n",tempStr);
            [tempStr setString:@""];
        }
    }
    [tempStr release];

答案 1 :(得分:0)

试试这个:

NSString *str = @"12345678";
NSMutableString* mStr= [NSMutableString string];
for(NSUInteger i=0 ; i<str.length; i++)
{
    [mStr appendString: [str substringWithRange: NSMakeRange(i,1)]];
    if(i%2 && i!=0)
    {
        [mStr appendString: @" "];
    }
}
NSLog(@"%@",mStr);

答案 2 :(得分:0)

由于您似乎已经找到了解决方案,这只是另一个例子(而不是特别有效的例子)如何实现。此版本正确处理奇数个字符;

NSString *original = @"192190129";
NSMutableString *result = [NSMutableString stringWithCapacity:2*original.length];

for (int pos=0; pos < original.length; pos++) {

    NSString *formatToAppend = (pos && !(pos & 1)) ? @" %C" : @"%C";
    [result appendString:[NSString stringWithFormat:formatToAppend,
        [original characterAtIndex:pos]]];

}

>>> "19 21 90 12 9"

如果您是初学者,那么自己编写(或者至少阅读和理解)这样的代码是非常好的训练,并且有很多方法可以让您尝试一些方法来查看您喜欢的代码风格。