Objective-C實訓(三)

練習與示例:

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);
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 228,606評論 6 533
  • 序言:濱河連續發生了三起死亡事件,死亡現場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發現死者居然都...
    沈念sama閱讀 98,582評論 3 418
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 176,540評論 0 376
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 63,028評論 1 314
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 71,801評論 6 410
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發上,一...
    開封第一講書人閱讀 55,223評論 1 324
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,294評論 3 442
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 42,442評論 0 289
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當地人在樹林里發現了一具尸體,經...
    沈念sama閱讀 48,976評論 1 335
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 40,800評論 3 354
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發現自己被綠了。 大學時的朋友給我發了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 42,996評論 1 369
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,543評論 5 360
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質發生泄漏。R本人自食惡果不足惜,卻給世界環境...
    茶點故事閱讀 44,233評論 3 347
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 34,662評論 0 26
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 35,926評論 1 286
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 51,702評論 3 392
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 47,991評論 2 374

推薦閱讀更多精彩內容