iOS與Android對比學習之NSString
阿新 • • 發佈:2018-12-31
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。