練習與示例:
1.字符串
NSString *str = [NSString stringWithFormat:@"我今年%d歲了",16];
NSLog(@"%@",str);
NSString *name = [NSString stringWithFormat:@"老王"];
NSLog(@"%@",name);
2.字符串的字面量形式(方便書寫,語法糖??)
//@"字符串內容",得到的是一個字符串常量
NSString *name1 = @"老王";
NSLog(@"%@的長度為:%lu",name1,name1.length);
unichar c = [@"abc" characterAtIndex:0];
NSLog(@"%c",c);
NSString *name2 = @"老王";
if (name1 == name2) {
NSLog(@"指針地址相同");
} else {
NSLog(@"指針地址不同");
}
3.比較內容相同的方法
if ([name isEqualToString:name1]) {
NSLog(@"字符串內容相同");
} else {
NSLog(@"字符串內容不同");
}
4.字符串常用屬性的使用
NSComparisonResult compareResult = [@"abc" compare:@"bcd"];
NSLog(@"%ld",compareResult);
//從索引值為1的位置開始截取子串(包含1的位置),一直截到最后
NSString *subString = [@"abcdefg" substringFromIndex:1];
NSLog(@"%@",subString);
//截取到從開始字符串到索引值處(不包含索引值位置)
NSString *subString1 = [@"abcdefg" substringToIndex:1];
NSLog(@"%@",subString1);
//截取某一段子串(range代表一個范圍,location代表截取開始位置,length代表截取的長度)
NSString *subString2 = [@"abcdefgh" substringWithRange:NSMakeRange(1, 2)];
NSLog(@"%@",subString2);
//字符串拼接(在原有的字符串后面追加一個字符串)
NSString *appendString = [@"abc" stringByAppendingString:@"def"];
NSLog(@"appending:%@",appendString);
//在原有的字符串后面追加一個格式化字符串
NSString *appendString1 = [@"abc" stringByAppendingFormat:@"%d", 123];
NSLog(@"%@",appendString1);
//字符串替換
NSString *contentString = @"hi,dsb";
//獲取dsb在contentString中所占的范圍
NSRange range = [contentString rangeOfString:@"dab"];
NSLog(@"range:loc=%lu,len=%lu",range.location,range.length);
if (range.length != 0) {
//替換該范圍的字符串為@"**"
NSString *replaceString = [contentString stringByReplacingCharactersInRange:range withString:@"**"];
NSLog(@"%@",replaceString);
}
NSString *replaceString1 = [contentString stringByReplacingOccurrencesOfString:@"dsb" withString:@"***"];
NSLog(@"%@",replaceString1);
//字符串轉int
NSInteger number = [@"123.1" intValue];
NSLog(@"%ld",number + 1);
//其他數據類型轉字符串
NSLog(@"%@", [NSString stringWithFormat:@"%ld", number]);
//轉大寫字母
NSString *uppercaseString = [@"abc" uppercaseString];
NSLog(@"轉大寫字母為:%@",uppercaseString);
//轉小寫字母
NSString *lowerString = [@"ADAFs" lowercaseString];
NSLog(@"轉小寫字母為:%@",lowerString);
//首字母大寫
NSString *capitalizedString = [@"abc" capitalizedString];
NSLog(@"首字母大寫為:%@",capitalizedString);
if ([@"abcdef" hasPrefix:@"ab"]) {
NSLog(@"ab是該字符串的前綴");
} else {
NSLog(@"ab不是該字符串的前綴");
}
5.可變字符串
NSMutableString *str1 = [[NSMutableString alloc]initWithString:@"abcdefg"];
NSMutableString *str2 = [[NSMutableString alloc]initWithString:@"abcdefg"];
//在原字符串上直接追加字符串
[str1 appendString:@"hij"];
//在元字符串上直接追加格式化字符串
[str2 appendFormat:@"%d",123];
NSLog(@"%@",str1);
NSLog(@"%@",str2);
//插入一個字符串
[str1 insertString:@"啦啦" atIndex:2];
NSLog(@"%@",str1);
//刪除
[str1 deleteCharactersInRange:NSMakeRange(2, 1)];
NSLog(@"%@",str1);
//NSNumber(數字對象)
NSNumber *intNumber = [NSNumber numberWithInt:10];
NSInteger integer = intNumber.integerValue;
//字面量寫法
NSNumber *numberObject = @10;
NSLog(@"%@", numberObject);
int x = 1;
NSNumber *numberObject1 = @(x);
NSLog(@"%@", numberObject1);
//值對象
NSValue *rangeValue = [NSValue valueWithRange:NSMakeRange(10, 10)];
NSLog(@"%@", rangeValue);
NSRange range1 = rangeValue.rangeValue;
作業:
1.將“文藝青年”改為“213青年”。
NSString *str1 = @"文藝青年";
str1 = [str1 stringByReplacingOccurrencesOfString:@"文藝" withString:@"213"];
NSLog(@"%@",str1);
2.將整數123, 轉換為字符串“123”。
NSInteger number = [@"123" intValue];
NSLog(@"%@",[NSString stringWithFormat:@"%ld", number]);
3.將“i love you”中的單詞首字母大寫變成“I Love You”。
NSString *str2 = [@"i love you" capitalizedString];
NSLog(@"“i love you”中的單詞首字母大寫變成:%@",str2);
4.將“abc def ghi”中的空格去掉變成“abcdefghi”。
NSMutableString *str3 = [[NSMutableString alloc]initWithString:@"abc def ghi"];
[str3 deleteCharactersInRange:NSMakeRange(3, 1)];
[str3 deleteCharactersInRange:NSMakeRange(6, 1)];
NSLog(@"%@",str3);
5.判斷一個字符串是否以http開頭,以png結尾,如果是,輸出是一個有效鏈接,如果不是,輸出鏈接錯誤。
NSString *str4 = @"域名.png";
if ([str4 hasPrefix:@"http"] && [str4 hasSuffix:@"png"]) {
NSLog(@"有效連接:%@",str4);
} else {
NSLog(@"鏈接錯誤");
}
6.將整數123,存儲為NSNumber類型的對象。
NSNumber *numberObject = @123;
NSLog(@"%ld",(long)numberObject);
7.將3.14159,存儲為NSNumber類型的對象。
NSNumber *numberObject1 = @3.14159;
NSLog(@"%@",numberObject1);
8.將上述OC的NSNumber類型的對象轉回為基本數據類型。
NSInteger number1 = numberObject.integerValue;
CGFloat number2 = numberObject1.floatValue;
NSLog(@"%ld",(long)number1);
NSLog(@"%f",number2);
9.判斷一個字符串是否是一個QQ號(特點:5~12位數字,不以0開頭),將結果打印在控制臺,如@“123456”是一個QQ號。
NSString *string = @"123456";
if ([string hasPrefix:@"0"] && (string.length < 5 && string.length > 12)) {
NSLog(@"不是一個QQ號");
} else {
NSLog(@"%@是一個QQ號",string);
}
10.判斷一個字符串是否是手機號(特點:11位數字,以13或14或15或17或18開頭)
NSString *phoneNumber = @"13322348712";
if (([phoneNumber hasPrefix:@"13"] || [phoneNumber hasPrefix:@"14"] || [phoneNumber hasPrefix:@"15"] || [phoneNumber hasPrefix:@"17"] || [phoneNumber hasPrefix:@"18"]) && (phoneNumber.length > 0 && phoneNumber.length < 12)) {
NSLog(@"%@是一個手機號碼", phoneNumber);
} else {
NSLog(@"不是一個手機號");
}
11.NSString *htmlString = @“<html><head><title>震驚,深夜溫強竟然做出這種事</title></head><body><p>從前有座山,山里有座廟,廟里有個老溫強和一個小溫強,老溫強對小溫強說:\”嘿嘿嘿"</p></body></html>";
要求:
1.將上面這個字符串中的<title></title>中間的內容作為一個新的字符串提取出來
2.將上面這個字符串中的<p></p>中間的內容作為一個新的字符串提取出來
注意:<title></title>和<p></p>假設位置不固定,不要人為的查位置截取
//求出
NSRange range=[htmlString rangeOfString:@"<title>"];
//NSString * strt = NSStringFromRange(range);
NSRange range1=[htmlString rangeOfString:@"</title>"];
//NSString * strt1 =NSStringFromRange(range1);
//NSLog(@"r1:%@,r2:%@",strt,strt1);
NSUInteger loc = range.location+range.length;
NSUInteger lenth=range1.location-loc;
NSRange r=NSMakeRange(loc, lenth);
NSString *final=[htmlString substringWithRange:r];
NSLog(@"這個字符串中的<title></title>中間的內容是:%@",final);
NSRange secRange = [htmlString rangeOfString:@"<p>"];
NSRange secRange1 = [htmlString rangeOfString:@"</p>"];
NSUInteger location = secRange.location+secRange.length;
NSUInteger lenth1 = secRange1.location-location;
NSRange r1=NSMakeRange(location, lenth1);
NSString *result = [htmlString substringWithRange:r1];
NSLog(@"這個字符串中的<p></p>中間的內容是:%@",result);
NSString *s1=[htmlString stringByReplacingOccurrencesOfString:@"<html><head><title>" withString:@""];
NSString *s2=[s1 stringByReplacingOccurrencesOfString:@"</title></head><body><p>從前有座山,山里有座廟,廟里有個老溫強和一個小溫強,老溫強對小溫強說:”嘿嘿嘿\"</p></body></html>" withString:@""];
NSLog(@"%@",s2);