2009-11-22 15 views
13

In den Objective-C-Funktionen können Sie Variablen abrufen und schreiben. Jetzt ist es an der Zeit, etwas Nützlicheres zu lernen! Gerade jetzt versuche ich herauszufinden, wie die String-Manipulation funktioniert. Insbesondere suche ich für die folgenden Funktionen:String-Manipulation in Objective-C

  • Verkettungs
  • die Länge einer Zeichenfolge zu finden (vor allem Multi-Byte/UTF-8-Strings, ich mache viel Arbeit mit ostasiatische Sprachen)
  • nur einen Teil eines Strings Pulling (zB die „foobar“ aus „abcfoobarxyz“)
  • innerhalb eines Strings Suche (das obige Beispiel sehen)
  • ändern Fall (oben, unten, Titel, wenn es einfach ist, do)
  • explodierende/implodierende stri ngs (z.B. Erstellen und Abrufen von Informationen aus durch Komma getrennte Listen)
  • Suchen/Ersetzen in Zeichenkette
  • noch andere allgemein nützliche String-Funktionen, die
+0

Lesen Sie die Dokumentation? –

Antwort

42

Beispiele: Verkettungs:

- (NSString*) concatenateString:(NSString*)stringA withString:(NSString*)stringB 
{ 
    NSString *finalString = [NSString stringWithFormat:@"%@%@", stringA, 
                 stringB]; 
    return finalString; 
} 
// The advantage of this method is that it is simple to put text between the 
// two strings (e.g. Put a "-" replace %@%@ by %@ - %@ and that will put a 
// dash between stringA and stringB 

String Länge:

- (int) stringLength:(NSString*)string 
{ 
    return [string length]; 
    //Not sure for east-asian languages, but works fine usually 
} 

Text aus String entfernen:

- (NSString*)remove:(NSString*)textToRemove fromString:(NSString*)input 
{ 
    return [input stringByReplacingOccurrencesOfString:textToRemove 
              withString:@""]; 
} 

Gross-/Kleinschreibung/Titlecase:

- (NSString*)uppercase:(NSString*)stringToUppercase 
{ 
    return [stringToUppercase uppercaseString]; 
} 

- (NSString*)lowercase:(NSString*)stringToLowercase 
{ 
    return [stringToLowercase lowercaseString]; 
} 

- (NSString*)titlecase:(NSString*)stringToTitleCase 
{ 
    return [stringToTitleCase capitalizedString]; 
} 

Suchen/Ersetzen

- (NSString*)findInString:(NSString*)string 
     replaceWithString:(NSString*)stringToReplaceWith 
{ 
    return [input stringByReplacingOccurrencesOfString:string 
              withString:stringToReplaceWith]; 
} 

Ich hoffe, das hilft!

PS: Vergessen Sie nicht, die Dokumentation zu überprüfen, und Google ist Ihr Freund.Viel Glück

+0

Vielen Dank! Ich habe mich durch die Dokumentation gearbeitet, aber es ist manchmal ziemlich verwirrend für mich, während das Ausschneiden von Codeauszügen, um zu sehen, wie es im Allgemeinen funktioniert, kein Problem ist. – Kaji

+0

kein Problem. Denken Sie daran, dass dies Funktionen sind (separat). Sie können also - und sollten - die Klammern direkt im Code verwenden (wie bei einem Hallo-Welt-Programm: '- (IBAction) helloButtonClicked: (id) sender {[textField setStringValue: [@" HALLO WORLD "kleinbuchstabenString]];} "Viel Spaß! –

+0

Großartig! Du hast Recht, Google ist mein Freund - es hilft mir, Dinge auf StackOverflow zu finden! – mpemburn

2

In Xcode, drücken Sie CMD-SHIFT-D und die Suche nach NSString.h, NSMutableString und/oder NSScanner

öffnen diese Dateien und schauen Sie sich alle Dinge, die Sie mit NSStrings tun können. Dies sollte Ihnen sagen, welche Funktionen es gibt.

Übrigens sollte dies für Sie zur zweiten Natur werden, da Sie dies oft verwenden werden, um herauszufinden, was die Funktionen und/oder Delegierten sind.

1

Hier ist ein "title Fall" Routine für Sie:

- (NSString *) stringToTitleCase: (NSString *) inString 
{ 
    NSString *firstLetter = [inString substringWithRange: NSMakeRange(0, 1)]; 
    NSString *theRest = [inString substringWithRange: NSMakeRange(1, [inString length]-1)]; 

    return [NSString stringWithFormat: @"%@%@", [firstLetter uppercaseString], theRest]; 
} 
+1

Ja, aber titlecase sollte den ersten Buchstaben jedes Wortkapitals machen, also müßten Sie die Zeichenkette nach einzelnen Wörtern usw. analysieren. –

+2

In In diesem Fall können Sie NSString Großbuchstaben verwenden – Ricardo

0
- (NSString *) stringToTitleCase: (NSString *) inString 
{ 
    NSString *firstLetter = [inString substringWithRange: NSMakeRange(0, 1)]; 
    NSString *theRest = [inString substringWithRange: NSMakeRange(1, [inString length]-1)]; 

    return [NSString stringWithFormat: @"%@%@", [firstLetter uppercaseString], theRest]; 
} 
Verwandte Themen