Objective-C NSString

介绍

我们现在开发都是面向对象,面向对象的优点就不在这里介绍了,NSString就是字符串面向对象的产物,一个NSString对象就代表一个字符串。

NSString创建

1.直接创建

NSString *str = @"string";

2.格式化的方式

NSString *str = [NSString stringWithFormat:@"My age is %d", 10];
NSString *str = [[NSString alloc] initWithFormat:@"My age is %d", 10];

3.从文件中读取

// 用来保存错误信息
NSError *error = nil;

// 读取文件内容
NSString *str = [NSString stringWithContentsOfFile:@"/Users/Gavin/Desktop/test.txt" encoding:NSUTF8StringEncoding error:&error];

// 如果有错误信息
if (error) {
    NSLog(@"读取失败, 错误原因是:%@", [error localizedDescription]);
} else { // 如果没有错误信息
    NSLog(@"读取成功, 文件内容是:\n%@", str);
}

4.从URL中读取

// 用来保存错误信息
NSError *error = nil;

// 创建URL路径
NSURL *url = [NSURL URLWithString:@"file:///Users/Gavin/Desktop/test.txt"];

// 读取文件内容
NSString *str = [NSString stringWithContentsOfURL:url encoding:NSUTF8StringEncoding error:&error];

// 如果有错误信息
if (error) {
    NSLog(@"读取失败, 错误原因是:%@", [error localizedDescription]);
} else { // 如果没有错误信息
    NSLog(@"读取成功, 文件内容是:\n%@", str);
}

NSString储存

储存到文件

NSString  *str = @"test";
[str writeToFile:@"/Users/gavin/Desktop/str.txt" atomically:YES encoding:NSUTF8StringEncoding error:nil];

储存到URL

[str writeToURL:[NSURL URLWithString:@"/Users/gavin/Desktop/str.txt"] atomically:YES encoding:NSUTF8StringEncoding error:nil];

NSString大小写处理

全部字符转为大写

- (NSString *)uppercaseString;

全部字符转为小写

- (NSString *)lowercaseString

首字母大写,其他小写

- (NSString *)capitalizedString

NSString比较

//两个字符串的内容相同就返回YES, 否则返回NO
- (BOOL)isEqualToString:(NSString *)aString;

/*
    这个方法可以用来比较两个字符串内容的大小
    比较方法: 逐个字符地进行比较ASCII值,返回NSComparisonResult作为比较结果
    NSComparisonResult是一个枚举,有3个值:
    如果左侧   > 右侧,返回NSOrderedDescending,
    如果左侧   < 右侧,返回NSOrderedAscending,
    如果左侧  == 右侧返回NSOrderedSame
*/
- (NSComparisonResult)compare:(NSString *)string;

//忽略大小写进行比较,返回值与compare:一致
- (NSComparisonResult) caseInsensitiveCompare:(NSString *)string;

NSString搜索

//是否以aString开头
- (BOOL)hasPrefix:(NSString *)aString;

//是否以aString结尾
- (BOOL)hasSuffix:(NSString *)aString;

/*
    用来检查字符串内容中是否包含了aString
    如果包含, 就返回aString的范围
    如果不包含, NSRange的location为NSNotFound, length为0
*/
- (NSRange)rangeOfString:(NSString *)aString;

NSRange

NSRange是Foundation框架中比较常用的结构体, 它的定义如下:

typedef struct _NSRange {
    NSUInteger location;
    NSUInteger length;
} NSRange;
// NSUInteger的定义
typedef unsigned int NSUInteger;

NSRange用来表示事物的一个范围,通常是字符串里的字符范围或者数组里的元素范围,NSRange有2个成员:
NSUInteger location : 表示该范围的起始位置
NSUInteger length : 表示该范围内的长度

NSString *str = @"gavin.swift";
//其中swift
//location为:6;
//length为:5

NSRang创建

//方式1
NSRange range;
range.location = 6;
range.length = 5;

//方式2
NSRange range = {6, 5};
//或者 
NSRange range = {.location = 6,.length = 5};

//方式3 : 使用NSMakeRange函数
NSRange range = NSMakeRange(6, 5);

NSString截取和替换

从指定位置from开始(包括指定位置的字符)到尾部

- (NSString *)substringFromIndex:(NSUInteger)from;

从字符串的开头一直截取到指定的位置to,但不包括该位置的字符

- (NSString *)substringToIndex:(NSUInteger)to;

按照所给出的NSRange从字符串中截取子串

- (NSString *)substringWithRange:(NSRange)range;

用replacement替换target

- (NSString *)stringByReplacingOccurrencesOfString:(NSString *)target withString:(NSString *)replacement;

NSString路径

是否为绝对路径

- (BOOL)isAbsolutePath;

获得最后一个目录

- (NSString *)lastPathComponent;

删除最后一个目录

- (NSString *)stringByDeletingLastPathComponent;

在路径的后面拼接一个目录

- (NSString *)stringByAppendingPathComponent:(NSString *)str;

NSString文件拓展名

获得拓展名

- (NSString *)pathExtension;

删除尾部的拓展名

- (NSString *)stringByDeletingPathExtension;

在尾部添加一个拓展名

- (NSString *)stringByAppendingPathExtension:(NSString *)str;

NSString其他用法

返回字符串的长度

- (NSUInteger)length;

返回index位置对应的字符

- (unichar)characterAtIndex:(NSUInteger)index;

转为基本数据类型

- (double)doubleValue;
- (float)floatValue;
- (int)intValue;

转为C语言中的字符串

- (char *)UTF8String;

去除所有的空格

[str stringByReplacingOccurrencesOfString:@" " withString:@""]

去除首尾的空格

[str stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceCharacterSet]];

NSMutableString

NSMutableString是NSString的子类,区别在于NSString是不可变的, 里面的文字内容是不能进行修改的,NSMutableString是可变的, 里面的文字内容可以随时更改,子类可以使用父类所有方法。

NSMutableString常用方法

拼接aString到最后面

- (void)appendString:(NSString *)aString;

拼接一段格式化字符串到最后面

- (void)appendFormat:(NSString *)format;

删除range范围内的字符串

- (void)deleteCharactersInRange:(NSRange)range;

在loc这个位置中插入aString

- (void)insertString:(NSString *)aString atIndex:(NSUInteger)loc;

使用aString替换range范围内的字符串

- (void)replaceCharactersInRange:(NSRange)range withString:(NSString *)aString;

PS

这出来感觉像是中文翻译有木有,NSString的其他方法大家可以再官方文档中找到对应的解释和最新的替代,这里只是摘要和总结。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值