Ich möchte es in Vorname und letzte Initiale ändern.Ich habe eine NSString wie folgt: "Vorname Nachname". Wie konvertiere ich es in "Vorname L."?
Danke!
Ich möchte es in Vorname und letzte Initiale ändern.Ich habe eine NSString wie folgt: "Vorname Nachname". Wie konvertiere ich es in "Vorname L."?
Danke!
NSString* nameStr = @"Firstname Lastname";
NSArray* firstLastStrings = [nameStr componentsSeparatedByString:@" "];
NSString* firstName = [firstLastStrings objectAtIndex:0];
NSString* lastName = [firstLastStrings objectAtIndex:1];
char lastInitialChar = [lastName characterAtIndex:0];
NSString* newNameStr = [NSString stringWithFormat:@"%@ %c.", firstName, lastInitialChar];
So viel prägnanter bekommen könnte, aber ich wollte Klarheit für das OP :) Daher alle Zwischenvariablen und Var-Namen.
Sie diesen Code-Schnipsel verwenden können, erste separate Zeichenfolge componentsSeparatedByString
verwenden, dann sie wieder beitreten, aber nur das erste Zeichen von Lastname
NSString *str = @"Firstname Lastname";
NSArray *arr = [str componentsSeparatedByString:@" "];
NSString *newString = [NSString stringWithFormat:@"%@ %@.", [arr objectAtIndex:0], [[arr objectAtIndex:1] substringToIndex:1]];
eine Anordnung der Teile des Namens einzeln holen:
NSString *sourceName = ...whatever...;
NSArray *nameComponents =
[sourceName
componentsSeparatedByCharactersInSet:
[NSCharacterSet whitespaceCharacterSet]];
Dann, ich denke:
NSString *compactName =
[NSString stringWithFormat:@"%@ %@.",
[nameComponents objectAtIndex:0],
[[nameComponents lastObject] substringToIndex:1]];
, dass alle Mittelnamen überspringen werde, aber wenn es nur einen Namen gibt, wie Sag 'Jeffry', dann wird 'Jeffry J.' ausgegeben. Wenn Sie die leere Zeichenfolge übergeben, wird eine Ausnahme ausgelöst, wenn Sie versuchen, objectAtIndex:0
zu erhalten, da dieses Array leer ist. Also sollten Sie überprüfen [nameComponents count]
.
es Dies tun würde:
NSArray *components = [fullname componentsSeparatedByCharactersInSet:[NSCharacterSet whitespaceCharacterSet]];
NSString *firstnameAndLastnameInitial = [NSString stringWithFormat:@"%@ %@.", [components objectAtIndex:0], [[components objectAtIndex:1] substringToIndex:1]];
Dies setzt voraus, dass Fullname eine Instanz von NSString und enthält zwei durch Leerzeichen getrennte Komponenten, so dass Sie auch für das überprüfen müssen.
'split()' die Zeichenfolge, nehmen Sie die erste Zeichenfolge und das erste Zeichen 'string.charAt (0)' der zweiten Zeichenfolge und einen Punkt, und verketten Sie sie. –