2013-02-23 1 views
1

Я ищу простой способ в Objective-C, чтобы добавить пробел между двумя символами моей строки. Таким образом, «12345678» будет выглядеть «12 34 56 78».NSString padding/space между 2-мя символами

Другой способ, преобразовать строку (строку длиной 128 бит со всеми числами) в массив с каждыми двумя символами.

Кто-нибудь знает что-то, что может мне помочь?

Спасибо. - Эли

+1

NSMutableString и петля? –

+0

Можете ли вы научить меня, как этого достичь? Я новичок в Objective-C, спасибо! @JoachimIsaksson –

+2

@EliLien Вам нужно приложить некоторые усилия самостоятельно. Примите намек, который вы получили от Йоахима, и прочитайте документацию «NSMutableString». Это ** тривиально ** и требует не что иное, как простое алгоритмическое мышление. – 2013-02-23 08:53:47

ответ

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

Большое спасибо @Guru! Это просто работает! –

+0

Это вызывает неопределенное поведение. '- [NSString characterAtIndex:]' возвращает 'unichar', для которого спецификатором формата является'% C', а не '% c'. – 2013-02-23 11:06:25

+0

спасибо за информацию сэра ... Он работал с% c также..довольно спасибо! – Guru

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); 
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" 

Дать (или, по крайней мере, чтение и понимание) код, как это себе очень хорошая тренировка, если вы новичок, и есть много способов сделать это, так что вы можете попробовать несколько способов, чтобы увидеть, что код стиль, который вам нравится.

Смежные вопросы