Ciągi Objective-C
Łańcuch w języku programowania Objective-C jest reprezentowany za pomocą NSString, a jego podklasa NSMutableString zapewnia kilka sposobów tworzenia obiektów ciągu. Najprostszym sposobem utworzenia obiektu ciągu znaków jest użycie konstrukcji Objective-C @ „...” -
NSString *greeting = @"Hello";
Poniżej przedstawiono prosty przykład tworzenia i drukowania łańcucha.
#import <Foundation/Foundation.h>
int main () {
NSString *greeting = @"Hello";
NSLog(@"Greeting message: %@\n", greeting );
return 0;
}
Kiedy powyższy kod jest kompilowany i wykonywany, daje wynik w następujący sposób -
2013-09-11 01:21:39.922 demo[23926] Greeting message: Hello
Objective-C obsługuje szeroką gamę metod manipulowania napisami -
Sr.No. | Metoda i cel |
---|---|
1 | - (NSString *)capitalizedString; Zwraca reprezentację odbiorcy zapisaną wielkimi literami. |
2 | - (unichar)characterAtIndex:(NSUInteger)index; Zwraca znak z podanej pozycji w tablicy. |
3 | - (double)doubleValue; Zwraca wartość zmiennoprzecinkową tekstu odbiorcy jako podwójną. |
4 | - (float)floatValue; Zwraca wartość zmiennoprzecinkową tekstu odbiorcy jako liczbę zmiennoprzecinkową. |
5 | - (BOOL)hasPrefix:(NSString *)aString; Zwraca wartość logiczną wskazującą, czy podany ciąg pasuje do początkowych znaków odbiornika. |
6 | - (BOOL)hasSuffix:(NSString *)aString; Zwraca wartość logiczną, która wskazuje, czy podany ciąg pasuje do końcowych znaków odbiornika. |
7 | - (id)initWithFormat:(NSString *)format ...; Zwraca obiekt NSString zainicjowany przy użyciu danego ciągu formatu jako szablonu, w którym są podstawiane pozostałe wartości argumentów. |
8 | - (NSInteger)integerValue; Zwraca wartość NSInteger tekstu odbiorcy. |
9 | - (BOOL)isEqualToString:(NSString *)aString; Zwraca wartość logiczną wskazującą, czy dany ciąg jest równy adresatowi przy użyciu dosłownego porównania opartego na standardzie Unicode. |
10 | - (NSUInteger)length; Zwraca liczbę znaków Unicode w odbiorniku. |
11 | - (NSString *)lowercaseString; Zwraca odwzorowanie adresata zapisane małymi literami. |
12 | - (NSRange)rangeOfString:(NSString *)aString; Znajduje i zwraca zakres pierwszego wystąpienia danego ciągu w odbiorniku. |
13 | - (NSString *)stringByAppendingFormat:(NSString *)format ...; Zwraca ciąg utworzony przez dołączenie do odbiornika ciągu utworzonego z danego ciągu formatu i następujących argumentów. |
14 | - (NSString *)stringByTrimmingCharactersInSet:(NSCharacterSet *)set; Zwraca nowy ciąg utworzony przez usunięcie z obu końców znaków odbiorcy zawartych w danym zestawie znaków. |
15 | - (NSString *)substringFromIndex:(NSUInteger)anIndex; Zwraca nowy ciąg zawierający znaki odbiorcy od tego pod danym indeksem do końca. |
Poniższy przykład wykorzystuje kilka z wyżej wymienionych funkcji -
#import <Foundation/Foundation.h>
int main () {
NSString *str1 = @"Hello";
NSString *str2 = @"World";
NSString *str3;
int len ;
NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];
/* uppercase string */
str3 = [str2 uppercaseString];
NSLog(@"Uppercase String : %@\n", str3 );
/* concatenates str1 and str2 */
str3 = [str1 stringByAppendingFormat:@"World"];
NSLog(@"Concatenated string: %@\n", str3 );
/* total length of str3 after concatenation */
len = [str3 length];
NSLog(@"Length of Str3 : %d\n", len );
/* InitWithFormat */
str3 = [[NSString alloc] initWithFormat:@"%@ %@",str1,str2];
NSLog(@"Using initWithFormat: %@\n", str3 );
[pool drain];
return 0;
}
Kiedy powyższy kod jest kompilowany i wykonywany, daje wynik w następujący sposób -
2013-09-11 01:15:45.069 demo[30378] Uppercase String : WORLD
2013-09-11 01:15:45.070 demo[30378] Concatenated string: HelloWorld
2013-09-11 01:15:45.070 demo[30378] Length of Str3 : 10
2013-09-11 01:15:45.070 demo[30378] Using initWithFormat: Hello World
Pełną listę metod związanych z Objective-C NSString można znaleźć w dokumencie NSString Class Reference.