Foundation框架基础 NSString

来源:互联网 发布:开淘宝网店怎么弄客服 编辑:程序博客网 时间:2024/05/21 19:31
#import<Foundation/Foundation.h>
/* 
 概念:NSString是不可变字符串,所有它所有产生其他字符串方法都是生成一个新的字符串,而不会改变原来字符串
 */

#import"NSString+CZ.h"
//字符串与URL
//URL: 概念:Uniform Resource Locator 统一资源定位符
//URL:格式 协议头://主机名称/资源路径
//http://www.itcast.cn:8080/images/beauty.png
//404 没找到
//file:///Users/apple/Desktop/test.txt
//由于file就是在本机上查找,所有没有主机名称
//ftp://

intmain(intargc, const char * argv[]) {

       
NSString *str =@"今天好冷啊!要多穿衣服!®";
////    把UTF8编码的字符串,编码成为URL中可用的字符串
//      NSString *str3 =  [str stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
////    把URL中可用的字符串,编码成为UTF8编码的字符串
//      str3 =[str stringByReplacingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
//      NSLog(@"%@",str3);
   
   
NSString *path =@"file:///Users/apple/Desktop/测试.txt";
    path = [path
stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
   
   
//    NSURL *url = [NSURL URLWithString:@"file:///Users/apple/Desktop/test.txt"];
    
NSURL  *url = [NSURLURLWithString:path];
     
NSError *error =nil;
     [str
writeToURL:urlatomically:YESencoding:NSUTF8StringEncodingerror:&error];
   
    
if (error) {
       
NSLog(@"%@",error);
     }
else{
       
NSLog(@"写入成功!");
     }
    
NSString *content =  [NSStringstringWithContentsOfURL:urlencoding:NSUTF8StringEncodingerror:&error];
   
   NSLog(@"%@",content);
   
   
return 0;
}
//字符串与文件
voidtestStringAndfile()
{
   
//  把字符串写入文件
   
NSString *str =@"今天好冷啊!";
   
NSString *path =@"/Users/apple/Desktop/test.txt";
   
   
NSError *error =nil;
   
BOOL isSuccess = [strwriteToFile:pathatomically:YESencoding:NSUTF8StringEncodingerror:(&error)];
   
   
//    if (isSuccess) {
   
//        NSLog(@"写入成功!");
   
//    }else{
   
//        NSLog(@"%@",error.userInfo);
   
//    }
   
   
//    if (error) {
   
//         NSLog(@"%@",error.userInfo);
   
//    }else{
   
//        NSLog(@"写入成功!");
   
//    }
   
//    读取文件
   
NSString *string  = [NSStringstringWithContentsOfFile:pathencoding:NSUTF8StringEncodingerror:&error];
   
if (error) {
       
NSLog(@"%@",error);
    }
else{
       
NSLog(@"%@",string);
    }
}

voidtestStringPath()
{
   
//  在原来的路径上拼接一个路径
   
   
NSString *path =@"/Users/apple/test.txt";
   
   
//    path = [path stringByAppendingPathComponent:@"Desktop"];
   
//  获取扩展名(拓展名)
   
//    path  = [path  pathExtension];
    path = [path
stringByDeletingPathExtension];
    path = [path
stringByAppendingPathExtension:@"png"];
   
NSLog(@"%@",path);
}


voidtestRepeace()
{
   
NSString *str =@" \nwww - itcast - cn ";
   
//  在原有字符串的末尾拼接另一个字符产生一个新的字符串
   
//  itcast
   
NSString *str1 = [strstringByAppendingString:@"itcast"];
   NSLog(@"%@",str1);

    //  字符替换
    str1 = [str
stringByReplacingOccurrencesOfString:@"-"withString:@"."];
   NSLog(@"%@",str1);

    //  去掉字符串中空格
    str1 = [str
stringByReplacingOccurrencesOfString:@" "withString:@""];
   NSLog(@"%@",str1);

    //  使用某个字符串替换掉原来字符串中某个区间的字符串
   
NSRange range = [strrangeOfString:@"itcast"];
    str1  = [str
stringByReplacingCharactersInRange:rangewithString:@"传智播客"];
   
NSLog(@"%@",str1);
   
   
//  删除原字符串中的所有指定的字符
    str1 =  [str
stringByReplacingOccurrencesOfString:@"itcast"withString:@""];
   
NSLog(@"%@",str1);
   
//  【掌握】去掉两头的空格
   
    str1 = [str
stringByTrimmingCharactersInSet:[NSCharacterSetwhitespaceCharacterSet]];
   NSLog(@"%@",str1);
}


voidtestConvert()
{
   
//  1、转大写
   
NSString *str =@"today is cool";
   
//  大写
   
NSString *str2  = [struppercaseString];
   
//  小写
    str2 = [str2lowercaseString];

    //  单词首字母大写
    str2 = [str
capitalizedString];
   
NSLog(@"%@",str);
   NSLog(@"%@",str2);

    //  基本数据类型转字符串
   
NSString *intStr = [NSStringstringWithFormat:@"%i",10];
   NSLog(@"%@",intStr);

    //  字符转基本数据类型
   
int i = intStr.intValue;
   
double d = intStr.doubleValue;
   
float f = intStr.floatValue;
   
NSLog(@"%d,%lf",i,d);
   
   
//  把C语言字符串转换为OC字符串
   
NSString *str8 = [NSStringstringWithCString:"hehe"encoding:NSUTF8StringEncoding];
   
NSLog(@"%@",str8);
   
   
// 把OC语言字符串转换为C字符串
   
const char *cStr = [str8cStringUsingEncoding:NSUTF8StringEncoding];
   
NSLog(@"%s",cStr);
}

voidtestCompare()
{
   
//  字符串的比较
   
NSString *str1 =@"abc";
   
NSString *str2 =@"Abc";
   
//  比较是内容,从前往后一个一个的比较
   
NSComparisonResult result = [str1 compare:str2];
   
/*
     NSOrderedAscending = -1L, str1 < str2
     NSOrderedSame,            str1 == str2
     NSOrderedDescending       str1 > str2
    
     */

   
//    if(result == NSOrderedSame){
   
//        NSLog(@"str1 == str2");
   
//    }else if(result == NSOrderedAscending){
   
//        NSLog(@"str1 < str2");
   
//    }else if(result == NSOrderedDescending){
   
//        NSLog(@"str1 > str2");
   
//    }
   
    result = [str1
compare:str2options:NSCaseInsensitiveSearch];
   
/*
     NSCaseInsensitiveSearch 忽略大小写
     NSNumericSearch 用于数值类型的比较
     */

   
if(result ==NSOrderedSame){
       
NSLog(@"str1 == str2");
    }
elseif(result ==NSOrderedAscending){
       
NSLog(@"str1 < str2");
    }
elseif(result ==NSOrderedDescending){
       
NSLog(@"str1 > str2");
    }
   
    str1 =
@"0123";
    str2 =
@"123";
    result = [str1
compare:str2options:NSNumericSearch];
   
   
if(result ==NSOrderedSame){
       
NSLog(@"str1 == str2");
    }
elseif(result ==NSOrderedAscending){
       
NSLog(@"str1 < str2");
    }
elseif(result ==NSOrderedDescending){
       
NSLog(@"str1 > str2");
    }
}


voidtestHas()
{
    //字符串以什么开头
    NSString *string =@"http://www.itcast.cn/images/beauty.png";
   
//  判断协议是不http
   
//                         前缀
   
BOOL isHttp = [stringhasPrefix:@"http://"];
   
if (isHttp) {
       
NSLog(@"是一个HTTP 协议");
    }

    // 判断资源是不是一个png的图片 mp4 mp3 jpeg txt doc xls pages
   
//                     后缀
   
BOOL isPng= [stringhasSuffix:@".png"];
   
if (isPng) {
       
NSLog(@"是一个png类型的图片");
    }
}


voidtestIsEqual()
{
   
NSString *str1 =@"";
   
//    NSString *str2 = @"acc";
    //  比较字符的地址
   
//    if (str1 == str2) {
   
//        NSLog(@"相等");
   //    }

    NSString *str3 = [NSStringstringWithFormat:@"a"];
   
//  比较内容
   
if ([str1isEqualToString:str3]) {
       
NSLog(@"相等");
    }
   
if ([str1isEqual:str3]) {
       
NSLog(@"相等");
    }
   
//
   
if ([str1myIsEqual:str3]) {
       
NSLog(@"相等");
    }
   
}


voidtestCharacterAtIndex()
{
   
NSString *str =@"www.itcast.cn";
   
   
unichar c = [strcharacterAtIndex:4];
   
NSLog(@"%c",c);
}


/*
 练习
 用3种方法将下面字符串中的中文截取出来
 <itcast>传智播客</itcast>
 */
voidtestSubString2()
{
   
// 1、第一种方式 XML
   
NSString *str =@"<itcast>传智播客</itcast>";
   
NSRange range = {8,4};
   
NSString *str2  = [strsubstringWithRange:range];
   NSLog(@"%@",str2);

    // 2、找“>”位置
   
NSRange range1 = [strrangeOfString:@">"];
   NSLog(@"%@",NSStringFromRange(range1));

    //  <itcast>传智播客</itcast> -》 传智播客</itcast>
   
NSString *str3 = [strsubstringFromIndex:range1.location+1];
   NSRange range2 = [str3 rangeOfString:@"<"];

    //  传智播客</itcast> ->   传智播客
   
NSString *str4 = [str3substringToIndex:range2.location];
   NSLog(@"%@",str4);

    // 3、第三种方式 <itcast>传智播客</itcast> -》 <itcast>传智播客
   
NSRange range5 = [strrangeOfString:@"</"];
   NSLog(@"%@",NSStringFromRange(range5));

    //  <itcast>传智播客</itcast> -》  <itcast>传智播客
   
NSString *str5 = [strsubstringToIndex:range5.location];
   
//  <itcast>传智播客  ->   传智播客
   
NSRange range6 = [str5rangeOfString:@">"];
   
   
NSString *str8 = [str5substringFromIndex:range6.location+1];
   
NSLog(@"%@",str8);
}


voidtestSubString()
{
   
//  字符串的获取
   
//  1、获取字符长度
   
NSString *str =@"www.itcast.cn";
   
long length = str.length;
   NSLog(@"%zd",length);

    //  2、获取子串
   
//   从哪个索引开始截取到字符串的末尾(包含索引上字符)
   
NSString *str2 = [strsubstringFromIndex:4];
   NSLog(@"%@",str2);

    //   从字符开头开始截取到索引的位置(不包含索引上的字符)
   
NSString *str3  = [strsubstringToIndex:3];
   
NSLog(@"%@",str3);
   
   
/*
     typedef struct _NSRange {
     NSUInteger location;//起始位置
     NSUInteger length;//表示长度
     } NSRange;
     */

    //  从哪个位置开始截取,截取多长
   
NSRange range = {4,6};
   
NSString *str4 = [strsubstringWithRange:range];
   
NSLog(@"%@",str4);
   
   
// 获取某个子串所在的区间
   
NSRange range1 =  [strrangeOfString:@"itcast"];
   
NSLog(@"%@",NSStringFromRange(range));
   
   
NSRange range2 =  [strrangeOfString:@"icast"];
   
if (range2.location== NSNotFound) {
       
NSLog(@"没有这个子串");
    }
   
   
if (range2.length== 0) {
       
NSLog(@"没有这个子串");
    }
   
   NSLog(@"%@",NSStringFromRange(range2));
}


voidtestCreateString()
{
   
   
//  第一种:字面量,它是常量字符串,存储常量区
   
   
NSString *str =@"abc";
   
NSString *str2 =@"abc";
   
NSLog(@"%p",str);
   NSLog(@"%p",str2);

    //  第二种是通过 快捷的构造方法
   
NSString *string = [NSStringstringWithFormat:@"string = %@,int = %d",@"hello",10];
   NSLog(@"%p",string);
  
    //  第三种方式 初始化方法
   
NSString * str3 = [[NSStringalloc] initWithFormat:@"%@",@"abc"];
   
NSLog(@"%p",str3);
}
0 0
原创粉丝点击