【黑马程序员】OC-Foundation框架—NSString和NSRange

原创 2015年11月18日 15:01:13

------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! -------

一、NSString类介绍和基本使用


1、什么是NSString?

一个NSString对象就代表一个字符串(文字内容),一般称NSString为字符串类


2、格式化的方式

NSString *str = [NSString stringWithFormat:@“”]

NSString *str2 = [[NSString alloc] initWithFormat:””]


3.从文件中写入和读取

//
//  main.m
//  NSString的基本使用
//
//  Created by Brisinga on 15/11/17.
//  Copyright © 2015年 itcast. All rights reserved.
//

#import <Foundation/Foundation.h>

int main(int argc, const char * argv[]) {
    @autoreleasepool {
        //定义一个错误类
        NSError *error;
        //定义一个字符串
       NSString *str = @"abc";
        //写入文件
        [str writeToFile:@"a.txt" atomically:YES encoding:NSUTF8StringEncoding error:&error];
        if (error==nil) {
            NSLog(@"写入成功!");
        }
        //读取文件中的数据到字符串
        NSString *str2 = [NSString stringWithContentsOfFile:@"a.txt" encoding:NSUTF8StringEncoding error:&error];
        NSLog(@"%@",str2);
        
    }
    return 0;
}

4.掌握NSURL读取字符串


1.什么是URL?

统一资源定位符

URL是互联网上标准的地址

互联网上的每个资源都有一个唯一的URL,它包含的信息指出资源的位置

根据一个URL就能找到唯一的一个资源


2.URL的格式

基本URL包含协议、主机域名(服务器名称\ip地址)、路径


3.URL读写字符串


//
//  main.m
//  NSURL读写字符串
//
//  Created by Brisinga on 15/11/17.
//  Copyright © 2015年 itcast. All rights reserved.
//

#import <Foundation/Foundation.h>

int main(int argc, const char * argv[]) {
    @autoreleasepool {
        //定义一个字符串
        NSString *str = @"abcsd";
        //定义一个地址
        NSString *path = @"a.txt";
        //定义一个URL
        NSURL *url = [NSURL URLWithString:path];
        NSURL *url2 = [NSURL fileURLWithPath:path];
        //把字符串写入URL
        BOOL flag = [str writeToURL:url2 atomically:YES encoding:NSUTF8StringEncoding error:nil];
        if (flag) {
            NSLog(@"写入成功!");
        }
        //从url读取
        NSString *str3 = [NSString stringWithContentsOfURL:url2 encoding:NSUTF8StringEncoding error:nil];
        NSLog(@"%@",str3);
        
        
    }
    return 0;
}

5.NSString字符串比较


1.字符串比较函数

1)比较字符串大小


//  main.m
//  NSString字符串比较
//
//  Created by Brisinga on 15/11/17.
//  Copyright © 2015年 itcast. All rights reserved.
//

#import <Foundation/Foundation.h>

int main(int argc, const char * argv[]) {
    @autoreleasepool {
        //定义两个字符串
        NSString *str1 = @"abc";
        NSString *str2 = @"Bcd";
        //比较两个字符串大小
        NSComparisonResult result = [str1 compare:str2];
        switch (result) {
            case NSOrderedSame: //相同
                NSLog(@"相同");
                break;
            case NSOrderedAscending:  //小于
                NSLog(@"str1<str2");
                break;
            case NSOrderedDescending:  //大于
                NSLog(@"str1>str2");
                break;
            default:
                break;
        }
        //不区分大小写比较
        result = [str1 compare:str2 options:NSCaseInsensitiveSearch];
        switch (result) {
            case 1:
                NSLog(@"str1>str2");
                break;
            case -1:
                NSLog(@"str1<str2");
                break;
            case 0:
                NSLog(@"str1=str2");
                break;
                
            default:
                break;
        }
        
    }
    return 0;
}

2)判断两个字符串是否相等


//  main.m
//  判断两个字符串是否相等
//
//  Created by Brisinga on 15/11/17.
//  Copyright © 2015年 itcast. All rights reserved.
//

#import <Foundation/Foundation.h>

int main(int argc, const char * argv[]) {
    @autoreleasepool {
        //定义两个字符串
        NSString *str1 = @"abc";
        NSString *str2 = @"adbc";
        //判断两个字符串是否相等
        BOOL isEqual = [str1 isEqualToString:str2];
        if (isEqual) {   //若为真则相等
            NSLog(@"相等");
        }else{
            NSLog(@"不相等");
        }
    }
    return 0;
}

6.NSString前后缀检查及搜索


1)NSString前后缀检查

//
//  main.m
//  NSString前后缀检查
//
//  Created by Brisinga on 15/11/17.
//  Copyright © 2015年 itcast. All rights reserved.
//

#import <Foundation/Foundation.h>

int main(int argc, const char * argv[]) {
    @autoreleasepool {
        //定义连个字符串
        NSString *str1 = @"http://www.baidu.com";
        NSString *str2 = @"xxxxxx.jpg";
        //检测str1是否是一个网址
        if([str1 hasPrefix:@"http"]||[str1 hasPrefix:@"https"]){ //如果是http和https        开头
            NSLog(@"是一个网址");
        }else{
        
            NSLog(@"这不是一个网址");
        }
        
        //检测str2是否是一个图片
        if([str2 hasSuffix:@"jpg"]){
            NSLog(@"是一个图片");  //如果后缀是jpg则是图片
        }else{
            NSLog(@"不是一个图片");
        }
        
    }
    return 0;
}

2)字符串查找(containsString,rangeOfString)


//
//  main.m
//  字符串查找
//
//  Created by Brisinga on 15/11/17.
//  Copyright © 2015年 itcast. All rights reserved.
//

#import <Foundation/Foundation.h>

int main(int argc, const char * argv[]) {
    @autoreleasepool {
        //定义两个字符串
        NSString *str1 = @"1asdiun";
        NSString *str2 = @"asd";
//方法一:在ios7下会崩溃
        //在str1中查找str2
        if([str1 containsString:str2]){
        
            NSLog(@"存在%@",str2);
        }else{
            NSLog(@"不存在");
        }

//方法二:ios7下可以
        //查找str1中首次出现str2的位置
        NSRange range = [str1 rangeOfString:str2]; //NSRange是结构体
        if (range.location!=NSNotFound) {  //如果location不等于NSNotFound
            NSLog(@"位置:%lu,长度:%lu",range.location,range.length);
        }else{
            NSLog(@"没有找到");
        }
        
        
    }
    return 0;
}

7.字符串的截取和替换


//
//  main.m
//  字符串的截取和替换
//
//  Created by Brisinga on 15/11/17.
//  Copyright © 2015年 itcast. All rights reserved.
//

#import <Foundation/Foundation.h>

int main(int argc, const char * argv[]) {
    @autoreleasepool {
        //定义一个字符串
        NSString *str = @"www.baidu.com";
        //定义一个空字符串
        NSString *str2 = nil;
        //1)从xx位置开始,到最后结束
        
        str2 = [str substringFromIndex:4];
        NSLog(@"%@",str2);
        //2)从开始位置,到xx位置结束
        str2 = [str substringToIndex:3];
        NSLog(@"%@",str2);
        //3)截取一个范围
        str2 = [str substringWithRange:NSMakeRange(4, 5)];
        NSLog(@"%@",str2);
        
        //将标签内的字符串取出来 <itcast>传智播客</itcast>
        NSString *str3 = @"<itcast>传智播客</itcast>";
        //先查找>出现的位置
        NSUInteger location = [str3 rangeOfString:@">"].location+1;
        //查找长度
        NSUInteger len = [str3 rangeOfString:@"</"].location - location;
        //截取长度
        NSString *result = [str3 substringWithRange:NSMakeRange(location, len)];
        NSLog(@"%@",result);
        
        //字符串的替换
        str = [str stringByReplacingOccurrencesOfString:@"." withString:@"#"];
        NSLog(@"%@",str);
        
        
        
    }
    return 0;
}

8.NSString的其他用法

//  main.m
//  NSString的其他用法
//
//  Created by Brisinga on 15/11/17.
//  Copyright © 2015年 itcast. All rights reserved.
//

#import <Foundation/Foundation.h>

int main(int argc, const char * argv[]) {
    @autoreleasepool {
        
        NSString *str = @" I love u   ";
        NSString *str2 = @"100";
        NSString *str3 = @"50.2";
        //1)获取字符串的每个字符
        for (int i=0; i<str.length; i++) {
            NSLog(@"%c",[str characterAtIndex:i]);
        }
        //2) 字符串和其他数据类型转换
        
        int a = [str2 intValue];
        float b = [str3 floatValue];
        NSLog(@"%.2f",a+b);
        
        //OC的字符串和C的字符串互相转换
           //1) C--->OC
            char *s = "zhangsanfeng";
            NSString *str4 = [NSString stringWithUTF8String:s];
            NSLog(@“%@",str4);
	//1) OC--->C
            str4 = @"hufei";
            const char *s1 = [str4 UTF8String];
            NSLog(@"%s",s1);
        
        //3) NSString去除首尾空格
        NSCharacterSet *set = [NSCharacterSet characterSetWithCharactersInString:@" "];
        str = [str stringByTrimmingCharactersInSet:set];
        NSLog(@"%@",str);
    }
    return 0;
}

二、NSRange的使用


NSRange是Foundation框架中常用的结构体,不是对象!

用来表示一个事物 一个范围,通常是字符串里的字符范围或者数组里的元素范围


NSUInteger location:表示该范围的起始位置

NSUInteger length:表示该范围的长度


1.NSRange的初始化


//
//  main.m
//  NSRange的初始化
//
//  Created by Brisinga on 15/11/17.
//  Copyright © 2015年 itcast. All rights reserved.
//

#import <Foundation/Foundation.h>

int main(int argc, const char * argv[]) {
    @autoreleasepool {
        //第一种方式
        NSRange range;
        range.location = 4;
        range.length = 5;
        
        //第二种方式
        NSRange range2;
        range2 = (NSRange){4,5};
        NSRange range3 = {4,5};
        
        //第三种方式
        NSRange range4 = {.location = 4};
        
        //第四种
        NSRange range5 = NSMakeRange(4, 5);
        //查看结构体变量的值
        NSLog(@"%lu,%lu",range.location,range.length);
        
        //把结构体变量转换称NSString
        NSString *str = NSStringFromRange(range5);
        //输出
        NSLog(@"%@",str);
        NSLog(@"%@",NSStringFromRange(range4));
    }
    return 0;
}


版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

黑马程序员--OC自学笔记---10Foundation、NSString、NSURL、NSRange、NSArray、NSMutableArray、NSDictionary

------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! ------- 1.   Foundation框架简介: 1)   框架是由许多类、方法、函数、...

黑马程序员——ios学习笔记 OC Foundation—NSString

------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! ------- Cocoa不是一种编程语言(它可以运行多种编程语言),它也不是一个开发工具(通过命令行我们...

黑马程序员---OC学习笔记之Foundation框架:NSString的基本使用

------Java培训、Android培训、iOS培训、.Net培训-------- 一、Foundation框架介绍 1、什么是框架? 1)框架是有许多类、方法、函数、文档按照一定的逻辑...

黑马程序员--OC学习篇之Foundation框架中的NSString对象和NSMutableString对象

------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! ------- 一、NSString对象 在OC中,NSString对象是非常重要的一个对象,也是最...
  • kkii180
  • kkii180
  • 2015年08月25日 14:13
  • 223

黑马程序员—Foundation框架之NSString

一、Foundation框架 1、其实也就是众多功能/API的集合 2、Foundation框架的作用: 1)Foundation框架是Mac/iOS中其他框架的基础 2)Foundation...

黑马程序员—Foundation框架之NSMutableString及NSString的其它用法

一、NSMutableString 1、NSMutableString是NSString的子类,NSString拥有的方法NSMutableString同样拥有。 2、NSMutableStrin...

黑马程序员——Foundation框架——常用结构体(NSRange、NSPoint等)

------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! ------- 一,Foundation框架简介: OC的Foundation框架包含了常用的类(所有类均是...

【黑马程序员】OC-Foundation框架—NSArray和NSMutableArray

------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! ------- 一、NSArray的介绍和基本使用 1)什么是NSArray? NSArray是OC中的数组类...

【黑马程序员】OC-Foundation框架—NSDictionary和NSMutableDictionary

------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! ------- 一、NSDictionary介绍 1)什么是NSDictionary NSDictio...

黑马程序员-OC-Foundation-NSString

NSString是什么 NSString是Foundation框架里面的NSObject的一个子类. 这里学习的主要是Foundation中的一些函数和这个类中已经封装好的一些方法,重点罗列了几个...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:【黑马程序员】OC-Foundation框架—NSString和NSRange
举报原因:
原因补充:

(最多只允许输入30个字)