2012-06-16 10 views
6

Ich bin auf der Suche nach einem einfachen Weg in Obj.C, um ein Leerzeichen zwischen jedem Zeichen meiner Zeichenfolge hinzuzufügen. So würde "1234" aussehen wie "1 2 3 4".NSString padding/Leerzeichen zwischen den Zeichen

Ich habe ein perfektes Javascript Beispiel hier: https://stackoverflow.com/a/7437422/949538

Kennt jemand etwas ähnliches für Obj.C? Kerning ist ein PITA in iOS, und das ist letztlich alles, was ich brauche sowieso ...

Gedanken/Kommentare?

Danke! - Drew

+0

Sie können das Javascript sogar in Obj-C gerade transkribieren (dieses ist grundlegend!). Was hast du probiert? – Vervious

Antwort

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

Das sieht so aus, als ob es funktioniert. Nur ein Gedanke; Ich glaube, Sie könnten auch diese Zeile einfügen - '[Puffer addObject: [NSString stringWithFormat: @" "]' - in der for-Schleife, nachdem Sie das Objekt aus der Zeichenfolge "string" hinzugefügt haben. – pasawaya

+0

@qegal ya wir können das verwenden, aber "buffer" ist NSMutableArray, also müssen wir am Ende 'componentsJoinedByString' verwenden, weil wir' NSString' – Hector

+0

Fantastic bekommen wollen. Arbeitete perfekt, danke! – Drew

0

Tun Sie dies:

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

dies richtig zu tun, unter Berücksichtigung der in David Rönnqvist Kommentar erwähnten Probleme, etwas tun wie folgt aus:

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]; 
}]; 
Verwandte Themen