#import <Foundation/Foundation.h>

int main(int argc, const char * argv[]) {
    @autoreleasepool {
        //创建
        NSString *str1 = @"abc";
        NSLog(@"%p", str1);
//        str1 = [[NSString alloc] initWithString:@"abc"];
//        NSLog(@"%p", str1);
        
        //1. 将C语言字符串转化为OC的字符串对象,只能是UTF-8编码
        str1 = [[NSString alloc] initWithUTF8String:"abc"];
        //2. 支持更多编码
        str1 = [[NSString alloc] initWithCString:"abc" encoding:NSUTF8StringEncoding];
        int money = 10;//我有10块钱
        //3. 格式化字符, NSLog()
        str1 = [[NSString alloc] initWithFormat:@"我有%d块钱", money];
        
        //4. 类方法
        str1 = [NSString stringWithUTF8String:"abc"];
        //5. 所有以名词开头的都会有返回值
        str1 = [NSString stringWithFormat:@"我有%d块钱", money];
        
        NSError *error;
        //6. 将文本文件内容读取到字符串对象中,并将首地址保存到str1里
        str1 = [NSString stringWithContentsOfFile:@"/Users/apple/Desktop/test.txt" encoding:NSUTF8StringEncoding error: &error];
        if (error != nil) {
            NSLog(@"%@", error);
        }
        else {
            NSLog(@"%@", str1);
        }
        
        str1 = @"ab";
        //7. 如果文件不存在,创建并保存内容;如果存在的话,覆盖
        [str1 writeToFile:@"/Users/apple/Desktop/test2.txt" atomically:YES encoding:NSUTF8StringEncoding error:nil];
        
        //8. 将基本数据类型(C类型)转化为OC的对象
        str1 = [NSString stringWithFormat:@"%d", 123];
        NSLog(@"%@", str1);
        int value = str1.intValue;
        NSLog(@"%d", value);
        
        //9. 比较
//        @"abc", @"abd"
//        NSComparisonResult res = [@"abc" compare:@"abd"];
        NSString *path = @"www.baidu.com";
        //10. 检查前缀
        if (![path hasPrefix:@"http://"]) {
            path = [NSString stringWithFormat:@"http://%@", path];
        }
        NSLog(@"%@", path);
        
        //11. 检查后缀
        NSString *filename = @"1.jpg";
        if ([filename hasSuffix:@".jpg"]) {
            NSLog(@"这是一张jpg图片");
        }
        
        //12. 在一个字符串后添加一个字符串, 产生一个新的字符串,老的不变
        NSString *str2 = [str1 stringByAppendingString:@"1111"];
        NSLog(@"%@", str1);
        NSLog(@"%@", str2);
        
        str2 = [str1 stringByAppendingFormat:@"%d", 998];
        NSLog(@"%@", str2);
        
        NSString *desk = @"/Users/apple/Desktop";
        for (int i = 1; i < 11; i++) {
            NSLog(@"%@", [desk stringByAppendingFormat:@"/%d.txt", i]);
        }
        
        //13. 文件路径,自动添加分隔符
        str2 = [desk stringByAppendingPathComponent:@"1.txt"];
        NSLog(@"%@", str2);
        str2 = [desk stringByAppendingPathExtension:@"exe"];
        NSLog(@"%@", str2);
        
        NSArray *array = [str2 pathComponents];
        NSLog(@"%@", [array lastObject]);
        
        filename = [array lastObject];
        //删除扩展名
        filename = [filename stringByDeletingPathExtension];
        NSLog(@"filename: %@", filename);
        
        //CSV
        NSString *values = @"1,2;3";
//        array = [values componentsSeparatedByString:@",;"];
        
        //用@",;"里的字符生成一个字符的集合
        NSCharacterSet *set = [NSCharacterSet characterSetWithCharactersInString:@",;"];
        //使用字符集set中的字符分割字符串
        array = [values componentsSeparatedByCharactersInSet:set];
        NSLog(@"%@", array);
        
        str1 = @"def教育abc";
        NSLog(@"字符个数: %lu", str1.length);
        
        NSLog(@"字节长度: %lu", [str1 lengthOfBytesUsingEncoding:NSUTF8StringEncoding]);
        
        unichar c = [str1 characterAtIndex:0];
        NSLog(@"%hu", c);
        
//        const char *cstr = [str1 UTF8String];
//        NSLog(@"cstr: %s", cstr);
        
        str1 = @"abcdefghijk";
        //将字符串扩充到10个字节,如果超过10个,裁剪
        str1 = [str1 stringByPaddingToLength:10 withString:@".+-" startingAtIndex:2];
        NSLog(@"%@", str1);
        
        str1 = @"abcd  zhang  san   aaaabcabc";
        //裁剪首尾的字符
        str1 = [str1 stringByTrimmingCharactersInSet:[NSCharacterSet characterSetWithCharactersInString:@"zd abc"]];
        NSLog(@"|%@|", str1);
        
        str1 = @"01234567890";
        //获取一个字串[3, 11)
        str2 = [str1 substringFromIndex:3];
        NSLog(@"%@", str2);
        
        //[0, 3)
        str2 = [str1 substringToIndex:3];
        NSLog(@"%@", str2);
        
        //截取一个范围内的字串
        NSRange range = NSMakeRange(0, 5);//{0, 3};
        str2 = [str1 substringWithRange:range];
        NSLog(@"%@", str2);
        
        str1 = @"world hello world";
        //查找一个字串的位置, 默认为从左到右的第一个
        range = [str1 rangeOfString:@"world"];
        NSLog(@"{%lu, %lu}", range.location, range.length);
        //没有找到,返回NSNotFound
        if (range.location == NSNotFound) {
            NSLog(@"没找到");
        }
        
        //将字符串中出现的world全部替换为hi
        str2 = [str1 stringByReplacingOccurrencesOfString:@"world" withString:@"hi"];
        NSLog(@"%@", str2);
        
        str1 = @"hi, China";
        //大写
        str2 = str1.uppercaseString;
        NSLog(@"%@", str2);
        
        //小写
        str1 = str2.lowercaseString;
        NSLog(@"%@", str1);
        
        //首字母大写
        str2 = str1.capitalizedString;
        NSLog(@"%@", str2);
        
        NSURL *url = [NSURL URLWithString:@"http://www.baidu.com"];
        NSString *content = [NSString stringWithContentsOfURL:url encoding:NSUTF8StringEncoding error:nil];
        NSLog(@"%@", content);
        [content writeToFile:@"/Users/apple/Desktop/index.html" atomically:YES encoding:NSUTF8StringEncoding error:nil];
        
        str1 = @“教育";
        //百分号转义
        str2 = [str1 stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
        NSLog(@"%@", str2);
    }
    return 0;
}

 

ios 中NSString的一些调用的更多相关文章

  1. IOS中把字符串加密/IOS中怎么样MD5加密/IOS中NSString分类的实现

    看完过后,你会学到: 1学习IOS开发中的分类实现, 2以及类方法的书写, 3以及字符串的MD5加密/解密. ---------------------------wolfhous---------- ...

  2. iOS 中 h5 页面 iframe 调用高度自扩展问题及解决

    开发需求需要在 h5 中用 iframe 中调用一个其他公司开发的 html 页面. 简单的插入 <iframe /> 并设置宽高后,发现在 Android 手机浏览器上打开可以正常运行, ...

  3. 在 iOS 中实现方法链调用

    编译:伯乐在线 - 林欣达 如有好文章投稿,请点击 → 这里了解详情 如需转载,发送「转载」二字查看说明 前言 链式调用(chained calls)是指在函数调用返回了一个对象的时候,使得这个调用链 ...

  4. 【iOS和HTML 5交互】iOS中加载html5调用html方法和修改html5内容

    近期项目开发中用到了这方面的技术了,那我们一起来看看. 1.利用webView控件加载本地html5或者网络上html5 2.设置控制器为webView的代理,遵守协议 3.实现代理方法webView ...

  5. iOS中NSTimer的invalidate调用之后

    大熊猫猪·侯佩原创或翻译作品.欢迎转载,转载请注明出处. 如果觉得写的不好请多提意见,如果觉得不错请多多支持点赞.谢谢! hopy ;) 免责申明:本博客提供的所有翻译文章原稿均来自互联网,仅供学习交 ...

  6. ios中layoutsubview何时被调用

    layoutsubview和viewDidlayoutsubview(控制器)被调用的集中情况 一:当view的frame或bounds发生改变 1:直接改view的frame或bounds 会调用v ...

  7. iOS中NSString转换成HEX(十六进制)-NSData转换成int

    http://www.2cto.com/kf/201402/281501.html 1 2 3 4 5 6 NSString *str = @"0xff055008"; //先以1 ...

  8. ios中摄像头和图片调用

    推荐文章 http://www.xuanyusong.com/archives/1493 http://blog.csdn.net/ryantang03/article/details/7830996

  9. IOS中调用系统的电话、短信、邮件、浏览功能

    iOS开发系列--通讯录.蓝牙.内购.GameCenter.iCloud.Passbook系统服务开发汇总 2015-01-13 09:16 by KenshinCui, 26990 阅读, 35 评 ...

随机推荐

  1. 基础dp

    队友的建议,让我去学一学kuangbin的基础dp,在这里小小的整理总结一下吧. 首先我感觉自己还远远不够称为一个dp选手,一是这些题目还远不够,二是定义状态的经验不足.不过这些题目让我在一定程度上加 ...

  2. UnicodeEncodeError: 'gbk' codec can't encode character '\xbb' in position 26269: illegal multibyte sequence

    解决方法参见下面的链接: http://blog.csdn.net/jim7424994/article/details/22675759

  3. Ubuntu彻底删除mysql

    删除 mysql sudo apt-get autoremove --purge mysql-server-5.0sudo apt-get remove mysql-serversudo apt-ge ...

  4. CentOS6.4安装go环境

    在官网上下载go1.6.linux-amd64.tar.gz 解压缩并拷贝程序到相应路径下 #tar -zxvf go1.6.linux-amd64.tar.gz #cp -rf go /usr/lo ...

  5. openwrt下关于snmpd的一些信息

    cd /tmp/ 上传: tftp -gr libnetsnmp_5.4.4-1_ar71xx.ipk 192.168.11.56 安装: opkg install libnetsnmp_5.4.4- ...

  6. MVC5 Entity Framework学习之创建复杂的数据模型

    目录(?)[-] 使用属性来自定义数据模型 DataType属性 StringLength属性 Column 属性 完成对Student实体的更改 Required 属性 Display 属性 Ful ...

  7. LeetCode OJ 229. Majority Element II

    Given an integer array of size n, find all elements that appear more than ⌊ n/3 ⌋ times. The algorit ...

  8. 如何在Excel中少犯二(I)

    作者:何明科链接:https://zhuanlan.zhihu.com/p/23472480来源:知乎著作权归作者所有.商业转载请联系作者获得授权,非商业转载请注明出处. 收到不少建议,要求开知乎Li ...

  9. c题 Registration system

    Description A new e-mail service "Berlandesk" is going to be opened in Berland in the near ...

  10. 模拟SPI协议时序

    SPI是串行外设接口总线,摩托罗拉公司开发的一种全双工,同步通信总线,有四线制和三线制. 在单片机系统应用中,单片机常常是被用来当做主机(MASTER),外围器件被当做从机(SLAVE). 所以,在以 ...