1. 程式人生 > >iOS與Android對比學習之NSString

iOS與Android對比學習之NSString

NSString類的使用

學習OC的應該都知道有個叫Foundation框架的東西,這個框架其實就是OC為我們提供的類的集合,就跟Java中的JDK一樣,裡面覆蓋了大量的我們平常使用的類。而今天要學習的NSString也是這個框架裡面的,它就是OC中的字串類,而Java中則叫String。掌握了OC的基本語法,我們就可以直接使用這個類了。

#import <Foundation/Foundation.h>

/**
 NSString類的使用
 */
void useNSString() {
    char *ch = "c hello";
    NSString *str = @"hello"
; /* OC C的字串型別轉換 */ //C --> OC NSLog(@"C轉換的OC字串:%@", [NSString stringWithUTF8String:ch]); //OC --> C NSLog(@"OC轉換的C字串:%s", [str UTF8String]); //格式化字串 int a = 3; int b= 5; NSString *strFormat = [NSString stringWithFormat:@"a = %d,b = %d", a, b]; NSLog
(@"格式化的字串:%@", strFormat); //拼接字串 NSString *appendStr = [strFormat stringByAppendingString: str]; NSLog(@"拼接的字串:%@", appendStr); //大小寫的轉換 NSString *alpha = @"AfCu"; NSString *convert = [alpha lowercaseString]; NSLog(@"轉換後的小寫字串:%@,轉換後的大寫字串:%@", convert, [alpha uppercaseString]); //字首、字尾的判斷
NSString *fix = @"http://www.qq.com"; BOOL hasPrefix = [fix hasPrefix:@"https"]; NSLog(@"是否有對應的字首:%@", hasPrefix ? @"true" : @"false"); BOOL hasSuffix = [fix hasSuffix:@".com"]; NSLog(@"是否有對應的字尾:%@", hasSuffix ? @"true" : @"false"); //判斷字串是否相等 NSString *stra = @"stra"; NSString *strb = @"strb"; BOOL equal = [stra isEqualToString:strb]; if (equal) { NSLog(@"字串相等"); } else { NSLog(@"字串不相等"); } //比較字串 //NSComparisonResult //分割字串 NSString *split = @"a,b,c,d,e,f,g"; NSArray *splitArray = [split componentsSeparatedByString:@","]; for (NSString *str in splitArray) { NSLog(@"分割後的字串:%@", str); } //按照範圍擷取字串 NSRange range = NSMakeRange(2, 5); NSString *rangeStr = [split substringWithRange: range]; NSLog(@"擷取後的字串:%@", rangeStr); //從某一位開始擷取後面的字串 int from = 3; NSString *rangeFrom = [split substringFromIndex: from]; NSLog(@"從%d位開始擷取字串為:%@", from, rangeFrom); //從開頭擷取到某一位 NSLog(@"從開頭擷取到某%d位的字串:%@", from, [split substringToIndex: from]); //將字串拆分為每一個字元 for (int i=0;i<[split length]; i++) { NSLog(@"字串拆分為每一個字元:%c", [split characterAtIndex: i]); } //查詢 NSString *findString = @"i love Java"; NSString *findStr = @"a"; NSRange findRange = [findStr rangeOfString: findStr]; NSLog(@"查詢指定字串%@的所在位置%d,其長度為%d", findStr, findRange.location, findRange.length); //替換 NSString *rawString = @"Hello Objective-C,Hello Java"; NSString *replaceString = [rawString stringByReplacingCharactersInRange: NSMakeRange(18, 5) withString: @"你好"]; NSLog(@"替換後的字串:%@", replaceString); } int main(int argc, const char * argv[]) { @autoreleasepool { // insert code here... NSLog(@"Hello, World!"); useNSString(); } return 0; }

以上基本上是開發中對字串常用的操作了,如果有其它的需求檢視下API即可。不過這裡我有點奇怪的是為什麼OC的呼叫方法使用“[ ]”符號括起來,而NSLog則只使用“( )”呢?

另外還有可變字串NSMutableString,在使用過成中可以動態的改變字串內容。由於還沒深入學習,但感覺類似Java中的StringBuilder。