iOS学习之NSString

简介:

一、不可变字符

  NSString是不可变字符串,它产生的其他字符串方法都是生成一个新的字符串,而不会改变原来字符串。

1.创建方式


//1)字面量,它是常量字符串,存储常量区
NSString *str=@"hello";
//2)通过快捷构造法,存储堆区
NSString *str = [NSString stringWithFormat:@"hello %@", @"world"];
//3)初始化方法
NSString *str = [[NSString alloc] initWithFormat:@"%@",@"hello"];

2.字符串的获取

1)获取字符串长度


NSString *str=@"hello";
long length = str.length;

2)获取子串


NSString *str=@"hello";
 
/*从索引字符串开始截取,直到字符串末尾,包含索引上的字符*/
NSString *strSub = [str substringFormIndex:2];
 
/*从字符串开头开始截取,直到索引位置,不包含索引上的字符*/
NSString *strSubT = [str substringToIndex:2];
 
/*从哪个位置开始,截取多长*/
NSRange range = {2,4};
NSString *strSubR = [str substringWithRange:range];
 
/*获取某个子串所在的区域*/
NSRange rangeS = [str rangeOfString"@"el"];

3)字符串范围获取


/*计算文本大小*/
CGSize maxSize = CGSizeMake(MAXFLOAT, MAXFLOAT);/*width与height都不限制*/
CGSize nameSize = [self.microBlogModel.name boundingRectWithSize:maxSize options:NSStringDrawingUsesLineFragmentOrigin attributes:@{NSFontAttributeName:[UIFont systemFontOfSize:15]} context:nil].size;

3.字符串操作


/*单词首字母转大写*/
[str capitalizedString];
 
/*字符替换*/
NSString *newStr = [str stringByReplacingOccurencesOfString:@"ll" withString:@"al"];
 
/*使用某个字符串替换掉原来字符串中某个区间的字符串*/
NSRange range = [str rangeOfString:@"ll"];
NSString *newStr = [str stringByReplacingCharactersInRange:range withSring:@"hi"];
 
/*删除原字符串中的所有指定字符串*/
NSString *newStr = [str stringByReplacingOccurencesOfString:@"ll" withString:@""];
 
/*去掉两头空格*/
NSString *newStr = [str stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceCharacterSet]];

4.字符串与文件


/*在原来路径上拼接一个路径*/
NSString *path = @"/Users/dengwei";
path = [path stringByAppendingPathComponent:@"Desktop"];
 
/*获取扩展名*/
NSString *path = @"/Users/dengwei/Desktop/apple.txt";
path = [path stringByDeletingPathExtension];
path = [path stringByAppendingPathExtension:@"png"];
 
/*把字符串写入文件*/
NSString *str = @"today is cold!";
NSString *path = @"/Users/dengwei/Desktop/apple.txt";
NSError *error;
BOOL isSuccess = [str writeToFile:path atomically:YES encoding:NSUTF8StringEncoding error:&error];
 
/*读取文件*/
NSString *string = [NSString stringWithContentsOfFile:path encoding:NSUTF8StringEncoding error:&error];

5.字符串与URL


/*
URL:Uniform Resource Locator 统一资源定位符
URL:格式  协议头://主机名称/资源路径
http://www.baidu.com/some/images/pic.png
404:没有找到资源
*/
NSString *str = @"today is cold!";
/*url路径中不支持中文,若是有中文则需将中文转码*/
NSURL *url =  [NSURL URLWithString:@"file:///Users/dengwei/Desktop/apple.txt"];
 
/*将中文转码*/
NSString *url_cn =  @"file:///Users/dengwei/Desktop/中文.txt";
/*编码,把UTF8编码的字符串编码成URL中可用的字符串*/
url_cn = [url_cn stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
/*解码,把URL中可用的字符串编码的字符串解码成UTF8编码的字符串*/
url_cn = [url_cn stringByReplacingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
 
url_cn = [NSURL URLWithString:url_cn];
NSError *error;
/*写入*/
BOOL isSuccess = [str writeToURL:url atomically:YES encoding:NSUTF8StringEncoding error:&error];
/*读取*/
NSString *string = [str stringWithContentsOfURL:url atomically:YES encoding:NSUTF8StringEncoding error:&error];

二、可变字符

  NSMutableString,可变字符,是NSString的子类。

  一个字符串需要经常修改其中的内容,则使用NSMutableString。 

可变字符串初始化,其他操作与NSString一样,因为其是NSString的子类。


NSMutableString *strM = [NSMutableString string];
/*Capacity表示容量,可以容纳多少字符,如果超过这个存储空间,就会扩展它*/
NSMutableString *strM = [NSMutableString stringWithCapacity:10];

目录
相关文章
|
8月前
|
前端开发 开发工具 Swift
学习iOS开发的准备
准备学习iOS开发?确保有Mac和最新Xcode,先学好编程基础特别是Swift。利用Apple官方文档、在线课程和书籍作为资源。熟悉Xcode及Git,通过实践项目和开源代码积累经验。深研架构模式、核心框架和优化技巧。加入开发者社区,关注行业动态,持续学习。
70 1
|
安全 前端开发 Android开发
鸿蒙开发|鸿蒙系统的介绍(为什么要学习鸿蒙开发|鸿蒙系统的官方定义|鸿蒙和安卓、ios的对比)
鸿蒙开发学习是一项探索性的工作,旨在开发一个全场景分布式操作系统,覆盖所有设备,让消费者能够更方便、更直观地使用各种设备。
845 6
鸿蒙开发|鸿蒙系统的介绍(为什么要学习鸿蒙开发|鸿蒙系统的官方定义|鸿蒙和安卓、ios的对比)
|
iOS开发
iOS UIKit Dynamics Demo 学习地址列表
iOS UIKit Dynamics Demo 学习地址列表
76 0
|
XML JSON 编解码
IM通讯协议专题学习(九):手把手教你如何在iOS上从零使用Protobuf
接上篇《金蝶随手记团队的Protobuf应用实践(原理篇)》,本文将以iOS端的Objective-C代码为例,图文并茂地向您菔救绾卧趇OS工程中快速使用Protobuf,希望对你有帮助。
197 0
IM通讯协议专题学习(九):手把手教你如何在iOS上从零使用Protobuf
|
iOS开发
iOS开发 - 写一个刷新的控件(未封装,适合新手学习,查看原理)
iOS开发 - 写一个刷新的控件(未封装,适合新手学习,查看原理)
165 0
iOS开发 - 写一个刷新的控件(未封装,适合新手学习,查看原理)
|
存储 Unix 编译器
|
存储 算法 iOS开发
|
存储 缓存 算法
iOS底层学习——对象初始化探索
iOS底层学习——对象初始化探索
|
物联网 Android开发 iOS开发
iOS开发 - 蓝牙学习的总结
iOS开发 - 蓝牙学习的总结
206 0
|
Java iOS开发
IOS学习笔记十六(NSString和NSMutableString)
IOS学习笔记十六(NSString和NSMutableString)
131 0

热门文章

最新文章

  • 1
    【01】噩梦终结flutter配安卓android鸿蒙harmonyOS 以及next调试环境配鸿蒙和ios真机调试环境-flutter项目安卓环境配置-gradle-agp-ndkVersion模拟器运行真机测试环境-本地环境搭建-如何快速搭建android本地运行环境-优雅草卓伊凡-很多人在这步就被难倒了
  • 2
    iOS|解决 setBrightness 调节屏幕亮度不生效的问题
  • 3
    【03】仿站技术之python技术,看完学会再也不用去购买收费工具了-修改整体页面做好安卓下载发给客户-并且开始提交网站公安备案-作为APP下载落地页文娱产品一定要备案-包括安卓android下载(简单)-ios苹果plist下载(稍微麻烦一丢丢)-优雅草卓伊凡
  • 4
    【02】仿站技术之python技术,看完学会再也不用去购买收费工具了-本次找了小影-感觉页面很好看-本次是爬取vue需要用到Puppeteer库用node.js扒一个app下载落地页-包括安卓android下载(简单)-ios苹果plist下载(稍微麻烦一丢丢)-优雅草卓伊凡
  • 5
    Cellebrite UFED 4PC 7.71 (Windows) - Android 和 iOS 移动设备取证软件
  • 6
    【01】仿站技术之python技术,看完学会再也不用去购买收费工具了-用python扒一个app下载落地页-包括安卓android下载(简单)-ios苹果plist下载(稍微麻烦一丢丢)-客户的麻将软件需要下载落地页并且要做搜索引擎推广-本文用python语言快速开发爬取落地页下载-优雅草卓伊凡
  • 7
    iOS各个证书生成细节
  • 8
    iOS|记一名 iOS 开发新手的前两次 App 审核经历
  • 9
    【我们都爱Paul Hegarty】斯坦福IOS8公开课个人笔记5 Data Structures、Methods、Properties
  • 10
    iOS开发-UIScrollView原理