Objective-C實訓(三)

練習與示例:

1.字符串

     NSString *str = [NSString stringWithFormat:@"我今年%d歲了",16];
     NSLog(@"%@",str);
     NSString *name = [NSString stringWithFormat:@"老王"];
     NSLog(@"%@",name);

2.字符串的字面量形式(方便書寫,語法糖??)

    //@"字符串內(nèi)容",得到的是一個字符串常量
     NSString *name1 = @"老王";
     NSLog(@"%@的長度為:%lu",name1,name1.length);
     unichar c = [@"abc" characterAtIndex:0];
     NSLog(@"%c",c);
     NSString *name2 = @"老王";
     if (name1 == name2) {
         NSLog(@"指針地址相同");
     } else {
         NSLog(@"指針地址不同");
     }

3.比較內(nèi)容相同的方法

        if ([name isEqualToString:name1]) {
            NSLog(@"字符串內(nèi)容相同");
        } else {
            NSLog(@"字符串內(nèi)容不同");
        }

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);
        
     //字符串轉(zhuǎn)int
     NSInteger number = [@"123.1" intValue];
     NSLog(@"%ld",number + 1);
        
     //其他數(shù)據(jù)類型轉(zhuǎn)字符串
     NSLog(@"%@", [NSString stringWithFormat:@"%ld", number]);
     //轉(zhuǎn)大寫字母
     NSString *uppercaseString = [@"abc" uppercaseString];
     NSLog(@"轉(zhuǎn)大寫字母為:%@",uppercaseString);
     //轉(zhuǎn)小寫字母
     NSString *lowerString = [@"ADAFs" lowercaseString];
     NSLog(@"轉(zhuǎn)小寫字母為:%@",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(數(shù)字對象)
     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;

作業(yè):

1.將“文藝青年”改為“213青年”。

     NSString *str1 = @"文藝青年";
     str1 = [str1 stringByReplacingOccurrencesOfString:@"文藝" withString:@"213"];
     NSLog(@"%@",str1);

2.將整數(shù)123, 轉(zhuǎn)換為字符串“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結(jié)尾,如果是,輸出是一個有效鏈接,如果不是,輸出鏈接錯誤。

     NSString *str4 = @"域名.png";
     if ([str4 hasPrefix:@"http"] && [str4 hasSuffix:@"png"]) {
         NSLog(@"有效連接:%@",str4);
     } else {
         NSLog(@"鏈接錯誤");
     }

6.將整數(shù)123,存儲為NSNumber類型的對象。

     NSNumber *numberObject = @123;
     NSLog(@"%ld",(long)numberObject);

7.將3.14159,存儲為NSNumber類型的對象。

     NSNumber *numberObject1 = @3.14159;
     NSLog(@"%@",numberObject1);

8.將上述OC的NSNumber類型的對象轉(zhuǎn)回為基本數(shù)據(jù)類型。

     NSInteger number1 = numberObject.integerValue;
     CGFloat number2 = numberObject1.floatValue;
     NSLog(@"%ld",(long)number1);
     NSLog(@"%f",number2);

9.判斷一個字符串是否是一個QQ號(特點:5~12位數(shù)字,不以0開頭),將結(jié)果打印在控制臺,如@“123456”是一個QQ號。

     NSString *string = @"123456";
     if ([string hasPrefix:@"0"] && (string.length < 5 && string.length > 12)) {
         NSLog(@"不是一個QQ號");
     } else {
         NSLog(@"%@是一個QQ號",string);
     }

10.判斷一個字符串是否是手機號(特點:11位數(shù)字,以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>中間的內(nèi)容作為一個新的字符串提取出來
2.將上面這個字符串中的<p></p>中間的內(nèi)容作為一個新的字符串提取出來
注意:<title></title>和<p></p>假設(shè)位置不固定,不要人為的查位置截取

    //求出
    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>中間的內(nèi)容是:%@",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>中間的內(nèi)容是:%@",result);
    
    NSString *s1=[htmlString stringByReplacingOccurrencesOfString:@"<html><head><title>" withString:@""];
    NSString *s2=[s1 stringByReplacingOccurrencesOfString:@"</title></head><body><p>從前有座山,山里有座廟,廟里有個老溫強和一個小溫強,老溫強對小溫強說:”嘿嘿嘿\"</p></body></html>" withString:@""];
    NSLog(@"%@",s2);
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容