2012-06-16 12 views
6

Sto cercando un modo semplice in Obj.C per aggiungere uno spazio tra ogni carattere della mia stringa. Quindi "1234" apparirebbe come "1 2 3 4".NSString padding/spazio tra caratteri

ho trovato un perfetto esempio javascript qui: https://stackoverflow.com/a/7437422/949538

Qualcuno sa di qualcosa di simile per Obj.C? Kerning è un PITA in iOS, e questo è tutto ciò di cui ho bisogno in ogni caso ...

Pensieri/commenti?

Grazie! - Drew

+0

Si può anche solo trascrivere il javascript in Obj-C (questo è di base!). Che cosa hai provato? – Vervious

risposta

4

Try This:

NSString *string =[NSString stringWithString:@"1234"]; 
NSMutableArray *buffer = [NSMutableArray arrayWithCapacity:[string length]]; 
for (int i = 0; i < [string length]; i++) { 
    [buffer addObject:[NSString stringWithFormat:@"%C", [string characterAtIndex:i]]]; 
} 
NSString *final_string = [buffer componentsJoinedByString:@" "]; 
+0

Sembra che funzioni. Solo un pensiero; Credo che potresti anche inserire questa riga - '[addObject del buffer: [NSString stringWithFormat: @" "]' - nel ciclo for dopo aver aggiunto l'oggetto dalla stringa 'string'. – pasawaya

+0

@qegal ya possiamo usarlo, ma 'buffer' è NSMutableArray quindi alla fine dobbiamo usare' componentsJoinedByString' perché vogliamo ottenere 'NSString' – Hector

+0

Fantastic. Ha funzionato perfettamente, grazie! – Drew

0

Fate questo:

NSString *string =[NSString stringWithString:@"1234"]; 

    NSMutableString *spacedString= [NSMutableString stringWithString:[NSString stringWithFormat:@"%C",[string characterAtIndex:0]]]; 

    for(int i = 1; i<[string length];i++) 
    { 
     [spacedString appendString:[NSString stringWithFormat:@" %C",[string characterAtIndex:i]]]; 
    } 
9

Per fare questo in modo corretto, tenendo conto dei problemi di cui al commento di David Rönnqvist, fare qualcosa di simile:

NSMutableString* result = [origString mutableCopy]; 
[result enumerateSubstringsInRange:NSMakeRange(0, [result length]) 
          options:NSStringEnumerationByComposedCharacterSequences | NSStringEnumerationSubstringNotRequired 
         usingBlock:^(NSString *substring, NSRange substringRange, NSRange enclosingRange, BOOL *stop){ 
    if (substringRange.location > 0) 
     [result insertString:@" " atIndex:substringRange.location]; 
}];