oc 基本基础类型之NSString

NSString :字符串对象 

管理字符串的相关操作:

#import <Foundation/Foundation.h>

int main(int argc, const char * argv[]) {
    @autoreleasepool {
        //length:计算字符串的长度
        NSString*p=@"asbaska";
        NSUInteger a=p.length;
        //NSUInteger b = [p length];
        NSLog(@"字符串的长度是%lu",a);//输出:7
        
      //  - (unichar)characterAtIndex:(NSUInteger)index; :获取index对应的字符
        char c = [p characterAtIndex:0];//以字符数组处理 位置从0开始
        NSLog(@"该位置对应的字符是%c",c);//输出:a
        
        //substring:可以认为是子字符串
       // - (NSString *)substringFromIndex:(NSUInteger)from;从index这个位置开始的子字符串(包括该位置)
        NSString *name = @"abcde hyt xmy";
        NSLog(@"%@",[name substringFromIndex:6]);//输出:hyt xmy
        
       // - (NSString *)substringToIndex:(NSUInteger)to;从开始到index之间的子字符串(不包括该位置)
        NSString *name1=@"hyt xmy abcde";
        NSLog(@"%@",[name1 substringToIndex:7]);//输出:hyt xmy
        
        //- (NSString *)substringWithRange:(NSRange)range;获取某一范围的子字符串
        //   typedef struct _NSRange {
        //   NSUInteger location;当前位置
        //   NSUInteger length;字符串的长度
    //   } NSRange;
        NSString *name2=@"abcd hytxmy efgh";
        NSRange range = NSMakeRange(5, 6);
        NSLog(@"%@",[name2 substringWithRange:range]);//输出:hytxmy
        
        //- (NSComparisonResult)compare:(NSString *)string;两个字符串比大小
        //    typedef NS_CLOSED_ENUM(NSInteger, NSComparisonResult) {
          //  NSOrderedAscending = -1L,  升序
          //  NSOrderedSame,                      相等
        //    NSOrderedDescending           降序
      //      };
        NSString *str1=@"aB";
        NSString *str2 = @"ab";
        NSInteger ta = [str1 compare:str2];
        if (ta == NSOrderedAscending) {
            NSLog(@"str1<str2");
        }else if(ta == NSOrderedSame){
            NSLog(@"str1 = str2");
        }else{
            NSLog(@"str1>str2");
        }//输出:str1<str2
        
       // 字符串比较是否相同:isEqualToString
        NSString *str3 = @"ab";
        if ([str2 isEqualToString:str3]) {
            NSLog(@"the same");
        }else{
            NSLog(@"different");
        }//输出:the same
        
        //- (BOOL)hasPrefix:(NSString *)str;字符串是否有前缀
        NSString *st =@"https www.com abc";
        if ([st hasPrefix:@"https"]) {
            NSLog(@"https协议");
        }else{
            NSLog(@"非https协议");
        }//输出:https协议

        //- (BOOL)hasSuffix:(NSString *)str;字符串是否有后缀
        NSString *st1 =@"https www.com png";
        if ([st1 hasSuffix:@"png"]) {
            NSLog(@"是png格式图片");
        }//是png图片
        
        //- (BOOL)containsString:(NSString *)str API_AVAILABLE(macos(10.10), ios(8.0), watchos(2.0), tvos(9.0));判断一个字符串是否包含另一个字符串
        NSString *st2=@"png";
        if ([st1 containsString:st2]) {
            NSLog(@"png 图片");
        }//输出:png图片
        
        //- (NSRange)rangeOfString:(NSString *)searchString;获取一个字符串在某一个字符串的具体位置(被判断位置的字符串写在后面)
        NSRange range1=[st1 rangeOfString:st2];
        NSLog(@"%lu %lu",range1.location,range1.length);//输出:14 3
        
       // - (NSString *)stringByAppendingString:(NSString *)aString;在某个字符串后面追加一个字符串形成一个新的字符串对象
        NSString *bookname=@"资本论";
        NSString *newname=[bookname stringByAppendingString:@"读后感"];
        NSLog(@"%@",newname);//输出:资本论读后感
        
       // - (NSString *)stringByAppendingFormat:(NSString *)format, ...在某个字符串后面追加一个一定格式的字符串形成一个新的字符串对象
        int count = 2;
        NSString *newname2=[bookname stringByAppendingFormat:@"读后感%d",count];
        NSLog(@"%@",newname2);//输出:资本论读后感2
        
        //@property (readonly) int intValue; 将字符串转换成整型
        NSString *str = @"123a";
        NSString *stra = @"abc";
        NSLog(@"%d",str .intValue);//输出:123
        NSLog(@"%f",str .floatValue);//输出:123.000000
        NSLog(@"%d",stra.intValue);//输出:0   如果消息的接收者(stra,这是OC中的叫法)不是以有效的十进制符号开头来表示一个数字,就会返回 0.
        
    }
    return 0;
}

猜你喜欢

转载自www.cnblogs.com/kinghyt/p/10397621.html
今日推荐