zoukankan      html  css  js  c++  java
  • 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;
    }
  • 相关阅读:
    Redis使用:聚合类型为空时,会自动被Redis删除
    Effective C++: 04设计与声明
    select引起的服务端程序崩溃问题
    Effective C++: 03资源管理
    Effective C++: 02构造、析构、赋值运算
    Effective C++: 01让自己习惯C++
    Centos7.2 安装配置 Tengine(nginx)
    Centos7更新阿里yum源
    Go中函数作为值、类型传递。
    go实现冒泡排序和快速排序
  • 原文地址:https://www.cnblogs.com/yaowen/p/7440344.html
Copyright © 2011-2022 走看看