Objective-C สตริง

สตริงในภาษาโปรแกรม Objective-C แสดงโดยใช้ NSString และคลาสย่อย NSMutableString มีหลายวิธีในการสร้างอ็อบเจ็กต์สตริง วิธีที่ง่ายที่สุดในการสร้างวัตถุสตริงคือการใช้โครงสร้าง Objective-C @ "... " -

NSString *greeting = @"Hello";

ตัวอย่างง่ายๆสำหรับการสร้างและพิมพ์สตริงแสดงอยู่ด้านล่าง

#import <Foundation/Foundation.h>

int main () {
   NSString *greeting = @"Hello";
   NSLog(@"Greeting message: %@\n", greeting );

   return 0;
}

เมื่อโค้ดด้านบนถูกคอมไพล์และเรียกใช้งานจะให้ผลลัพธ์ดังนี้ -

2013-09-11 01:21:39.922 demo[23926] Greeting message: Hello

Objective-C รองรับวิธีการจัดการสตริงที่หลากหลาย -

ซีเนียร์ วิธีการและวัตถุประสงค์
1

- (NSString *)capitalizedString;

ส่งกลับการแสดงตัวพิมพ์ใหญ่ของผู้รับ

2

- (unichar)characterAtIndex:(NSUInteger)index;

ส่งกลับอักขระที่ตำแหน่งอาร์เรย์ที่กำหนด

3

- (double)doubleValue;

ส่งคืนค่าทศนิยมของข้อความของผู้รับเป็นค่าคู่

4

- (float)floatValue;

ส่งคืนค่าทศนิยมของข้อความของผู้รับเป็นค่าทศนิยม

5

- (BOOL)hasPrefix:(NSString *)aString;

ส่งคืนค่าบูลีนที่ระบุว่าสตริงที่กำหนดตรงกับอักขระเริ่มต้นของตัวรับหรือไม่

6

- (BOOL)hasSuffix:(NSString *)aString;

ส่งคืนค่าบูลีนที่ระบุว่าสตริงที่กำหนดตรงกับอักขระลงท้ายของผู้รับหรือไม่

7

- (id)initWithFormat:(NSString *)format ...;

ส่งคืนอ็อบเจ็กต์ NSString ที่เริ่มต้นโดยใช้สตริงรูปแบบที่กำหนดเป็นเทมเพลตซึ่งค่าอาร์กิวเมนต์ที่เหลือจะถูกแทนที่

8

- (NSInteger)integerValue;

ส่งคืนค่า NSInteger ของข้อความของผู้รับ

9

- (BOOL)isEqualToString:(NSString *)aString;

ส่งคืนค่าบูลีนที่ระบุว่าสตริงที่กำหนดเท่ากับตัวรับหรือไม่โดยใช้การเปรียบเทียบตามตัวอักษร Unicode

10

- (NSUInteger)length;

ส่งคืนจำนวนอักขระ Unicode ในเครื่องรับ

11

- (NSString *)lowercaseString;

ส่งกลับการแสดงค่าที่ต่ำกว่าของผู้รับ

12

- (NSRange)rangeOfString:(NSString *)aString;

ค้นหาและส่งคืนช่วงของการเกิดครั้งแรกของสตริงที่กำหนดภายในตัวรับ

13

- (NSString *)stringByAppendingFormat:(NSString *)format ...;

ส่งคืนสตริงที่สร้างขึ้นโดยต่อท้ายสตริงที่สร้างจากสตริงรูปแบบที่กำหนดและอาร์กิวเมนต์ต่อไปนี้ให้กับผู้รับ

14

- (NSString *)stringByTrimmingCharactersInSet:(NSCharacterSet *)set;

ส่งคืนสตริงใหม่ที่สร้างขึ้นโดยการลบออกจากปลายทั้งสองด้านของอักขระตัวรับที่มีอยู่ในชุดอักขระที่กำหนด

15

- (NSString *)substringFromIndex:(NSUInteger)anIndex;

ส่งคืนสตริงใหม่ที่มีอักขระของผู้รับจากสตริงที่ดัชนีที่กำหนดไปยังจุดสิ้นสุด

ตัวอย่างต่อไปนี้ใช้ประโยชน์จากฟังก์ชันที่กล่าวถึงข้างต้น -

#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;
}

เมื่อโค้ดด้านบนถูกคอมไพล์และเรียกใช้งานจะให้ผลลัพธ์ดังนี้ -

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

คุณสามารถค้นหารายการวิธีการที่เกี่ยวข้องกับ Objective-C NSString ทั้งหมดได้ในNSString Class Reference