开发者社区> 范大脚脚> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

oc68--NSString

简介:
+关注继续查看
复制代码
//
//  main.m
//  字符串截取

#import <Foundation/Foundation.h>

int main(int argc, const char * argv[]) {

    NSString *str = @"<head>小码哥</head>";
    /*
    // NSRange : 位置/长度
//    NSRange range = {6, 3};
//    NSRange range;
//    range.location = 6;
//    range.length = 3;
    // 只要是OC提供的结构体, 一般都可以使用NSMakeXXX来创建
//    NSRange range = NSMakeRange(6, 3);
    */
    
    // 1.动态获取截取的起始位置
    NSUInteger location = [str rangeOfString:@">"].location + 1;
    // 2.动态获取截取的长度
    // 注意:rangeOfString是从左至右的开始查找, 只要找到就不找了
    // NSUInteger length = [str rangeOfString:@"<" options:NSBackwardsSearch].location - location;  从后向前找,
    NSUInteger length = [str rangeOfString:@"</"].location - location;
    NSLog(@"location = %lu, length = %lu", location, length);
    NSRange range = NSMakeRange(location, length);
    NSString *newStr = [str substringWithRange:range];
    NSLog(@"str = %@", str);
    NSLog(@"newStr = %@", newStr);
   
    
    NSString *temp = @"abcdefa";
    NSRange range =[temp rangeOfString:@"a" options:NSBackwardsSearch];
    NSLog(@"%lu", range.location);
    
    
    // 从什么地方开始截取, 一直截取到最后
    NSString *newStr = [str substringFromIndex:6];
    NSLog(@"newStr = %@", newStr);
   //  从开头开始截取, 一直截取到什么位置
    NSString *newStr = [str substringToIndex:6];
    NSLog(@"newStr = %@", newStr);
    
    /*
     <head>小码哥</head> --> 小码哥</head>  --> 小码哥
     <head>小码哥</head> --> <head>小码哥  --> 小码哥
    */
    NSLog(@"str = %@", str);
    NSUInteger location = [str rangeOfString:@">"].location + 1;
    NSString *newStr = [str substringFromIndex:location];
    NSLog(@"newStr = %@", newStr);
    
    location = [newStr rangeOfString:@"</"].location;
    // 改变了指针的指向, 并不是修改了原来的字符串
    newStr = [newStr substringToIndex:location];
    NSLog(@"newStr = %@", newStr);
    
    return 0;
}
复制代码
复制代码
//
//  main.m
//  字符串替换

#import <Foundation/Foundation.h>

int main(int argc, const char * argv[]) {
    /*
    // 需求: 将&符号替换为/
    NSString *str = @"http:&&www.520it.com&img&lnj.gif";
    
    // OccurrencesOfString: 要替换谁
    // withString: 用谁替换
    NSString *newStr = [str stringByReplacingOccurrencesOfString:@"&" withString:@"/"];
    NSLog(@"newStr = %@", newStr);
    
    
    
    // 1.去除空格  2.将&替换为/
    NSString *str = @"   http:   &&www.   520it.com   &img&lnj.gif   ";
    // 1.去除空格
    NSString *newStr = [str stringByReplacingOccurrencesOfString:@" " withString:@""];
    NSLog(@"newStr = |%@|", newStr);
    NSString *newStr2 = [newStr stringByReplacingOccurrencesOfString:@"&" withString:@"/"];
    NSLog(@"newStr2 = |%@|", newStr2);  */
    
    
    // 3.替换首尾
    
    NSString *str1 = @"   http:&&www.520it.com&img&lnj.gif   ";
    NSString *str = @"HTTP://www.520it.com/img/LNJ.GIF";
    
    NSCharacterSet *set1 = [NSCharacterSet whitespaceCharacterSet];
    NSString *newStr1 = [str stringByTrimmingCharactersInSet:set1];
    
    NSCharacterSet *set = [NSCharacterSet uppercaseLetterCharacterSet];
    NSString *newStr = [str stringByTrimmingCharactersInSet:set]; //首尾大小写去掉了
    NSLog(@"newStr = |%@|", newStr);
    
    
    return 0;
}
复制代码
复制代码
//
//  main.m
//  字符串与路径

#import <Foundation/Foundation.h>

int main(int argc, const char * argv[]) {

    NSString *str = @"User/lnj/Desktop/lnj.txt.jpg";
    // 1.判断是否是绝对路径
    // 其实本质就是判断字符串是否以/开头
    if([str isAbsolutePath])  //no
    {
        NSLog(@"是绝对路径");
    }else{
        NSLog(@"不是绝对路径");
    }

    
    // 2.获取文件路径中的最后一个目录
    // 本质就是获取路径中最后一个/后面的内容

    NSString *newStr = [str lastPathComponent];
    NSLog(@"%@", newStr);  //lnj.txt.jpg

    
    // 3.删除文件路径中的最后一个目录
    
    // 本质就是删除最后一个/后面的内容, 包括/也会被删除
    NSString *newStr1 = [str stringByDeletingLastPathComponent];
    NSLog(@"%@", newStr1); //User/lnj/Desktop
    
    
    // 4.给文件路径添加一个目录
     // 本质就是在字符串的末尾加上一个/ 和指定的内容
     // 注意: 如果路径后面已经有了/, 那么就不会添加了
     //      如果路径后面有多个/, 那么会自动删除多余的/, 只保留一个
     NSString *newStr2 = [str stringByAppendingPathComponent:@"xmg"];
     NSLog(@"%@", newStr2);  //User/lnj/Desktop/lnj.txt.jpg/xmg
    
    // 5.获取路径中文件的扩展名
    // 本质就是从字符串的末尾开始查找., 截取第一个.后面的内容
    NSString *newStr3 = [str pathExtension];
    NSLog(@"%@", newStr3);  //jpg
    
    // 6.删除路径中文件的扩展名
    // 本质就是从字符串的末尾开始查找.,删除第一个.和.后面的内容
    NSString *newStr4 = [str stringByDeletingPathExtension];
    NSLog(@"%@", newStr4);  //User/lnj/Desktop/lnj.txt
    
    // 7.给文件路径添加一个扩展名
    // 本质就是在字符串的末尾加上一个.和指定的内容
    NSString *newStr5 = [str stringByAppendingPathExtension:@"jpg"];
    NSLog(@"%@", newStr5); //User/lnj/Desktop/lnj.txt.jpg.jpg
    
    return 0;
}
复制代码
复制代码
//
//  main.m
//  字符串的转换

#import <Foundation/Foundation.h>

int main(int argc, const char * argv[]) {

//    NSString *str = @"abc";
    
    // 1.将字符串转换为大写
    NSString *newStr = [str uppercaseString];
    NSLog(@"%@", newStr);
    // 2.将字符串转换为小写
    NSString *newStr2 = [newStr lowercaseString];
    NSLog(@"%@", newStr2);
//    htpp://www.520it.com/img/lnj.GIF;
    
    // 3.将字符串的首字符转换为大写
    NSString *newStr = [str capitalizedString];
    NSLog(@"%@", newStr);
    
    // 4.字符串与基本数据类型的转换
    NSString *str1 = @"110";
    NSString *str2 = @"120";
//    str1 + str2; // 错误
    int value1 = [str1 intValue];
    int value2 = [str2 intValue];
    NSLog(@"sum = %i", value1 + value2);
    
    // 注意: 如果不是int,double,float,bool,integer,longlong这些类型就不要乱用
    NSString *str3 = @"abc";
    int value3 = [str3 intValue];
    NSLog(@"value3 = %i", value3);
    
    // 5.C语言字符串和OC字符串之间的转换
    char *cStr = "lnj";
    NSString *str = [NSString stringWithUTF8String:cStr];
    NSLog(@"str = %@", str);
    
    NSString *newStr = @"lmj";
    const char *cStr2 = [newStr UTF8String];
    NSLog(@"cStr2 = %s", cStr2);
    
    return 0;
}
复制代码

 


本文转自农夫山泉别墅博客园博客,原文链接:http://www.cnblogs.com/yaowen/p/7440344.html,如需转载请自行联系原作者

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
+关注
文章
问答
文章排行榜
最热
最新
相关电子书
更多
低代码开发师(初级)实战教程
立即下载
阿里巴巴DevOps 最佳实践手册
立即下载
冬季实战营第三期:MySQL数据库进阶实战
立即下载