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