//
// 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 + ;
// 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:];
NSLog(@"newStr = %@", newStr);
// 从开头开始截取, 一直截取到什么位置
NSString *newStr = [str substringToIndex:];
NSLog(@"newStr = %@", newStr); /*
<head>小码哥</head> --> 小码哥</head> --> 小码哥
<head>小码哥</head> --> <head>小码哥 --> 小码哥
*/
NSLog(@"str = %@", str);
NSUInteger location = [str rangeOfString:@">"].location + ;
NSString *newStr = [str substringFromIndex:location];
NSLog(@"newStr = %@", newStr); location = [newStr rangeOfString:@"</"].location;
// 改变了指针的指向, 并不是修改了原来的字符串
newStr = [newStr substringToIndex:location];
NSLog(@"newStr = %@", newStr); return ;
}
//
// 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 ;
}
//
// 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 ;
}
//
// 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 = @"";
NSString *str2 = @"";
// 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 ;
}

oc68--NSString的更多相关文章

  1. NSString属性什么时候用copy,什么时候用strong?

           我们在声明一个NSString属性时,对于其内存相关特性,通常有两种选择(基于ARC环境):strong与copy.那这两者有什么区别呢?什么时候该用strong,什么时候该用copy呢 ...

  2. iOS UIAlertController跟AlertView用法一样 && otherButtonTitles:(nullable NSString *)otherButtonTitles, ... 写法

    今天写弹出框UIAlertController,用alertView习惯了,所以封装了一下,跟alertView用法一样,不说了,直接上代码: 先来了解一下otherButtonTitles:(nul ...

  3. 【去除NSString 字符串中的空格换行符】

    @interface NSString (DeletWhiteSpace) // 返回一个去掉前后空格的字符串或者下划线,如果自己是一个nil 返回@“” - (NSString *)trimming ...

  4. NSString 的常用操作

    NSString *testStr01=@"HelloWord"; NSString *testStr02=[testStr01 substringToIndex:];//取头(从 ...

  5. 时间戳转化为日期TimeStamp转NSDate转NSString

    //时间戳处理 NSInteger time = [self.album.updatedAt integerValue] / 1000; NSNumber *timer = [NSNumber num ...

  6. iOS - Json解析精度丢失处理(NSString, Double, Float)

    开发中处理处理价格金额问题, 后台经常返回float类型, 打印或转成NSString都会有精度丢失问题, 因此使用系统自带的NSDecimalNumber做处理, 能解决这问题:经过测试其实系统NS ...

  7. iOS NSString中的搜索方法rangeOfString

    NSString *str = @"your://aaa?backscheme=my"; //在str中查找“backscheme=”,并返回一个NSRange类型的值,我们可以通 ...

  8. NSString相关操作

    //创建一个字符串对象 NSString * str_1 = @"Hello"; //字面量方法 ; NSString * str_2 = [NSString stringWith ...

  9. NSString 和NSData 转换

    NSString 转换成NSData 对象 NSData* xmlData =[@"testdata" dataUsingEncoding:NSUTF8StringEncoding ...

  10. NSString 初始化方法的内存比较

    NSString *str1 = @"hello"; NSString *str2 = @"hello"; NSString *str3 = [NSString ...

随机推荐

  1. LR事务、集合点

    事务(Transaction):为了衡量服务器的性能,我们需要定义事务.比如:我们在脚本中有一个数据查询操作,为了衡量服务器执行查询操作的性能,我们把这个操作定义为一个事务,这样在运行测试脚本时,Lo ...

  2. Computed Properties vs Property Requirements - protocol

    In addition to stored properties, classes, structures, and enumerations can define computed properti ...

  3. Windows提高_1.2遍历进程、遍历模块

    进程 什么是进程? 通俗的来讲,进程就是一个运行中的程序,最少包含一个虚拟空间,通常是 4 GB大小,一组提供数据和代码的模块,通产是 dll 和 exe 文件,一个进程内核对象和最少一个线程. 进程 ...

  4. 易忘小技巧--yum

    写在前面:日常维护系统中,如果不是天天接触,难免会忘记一些实用小技巧,本文记录自己使用的小技巧,有新发现时,会长期更新 安装epel和dnf源 # 安装epel yum -y install epel ...

  5. 【转载】dubbo约束的引入(解决eclipse中报错问题)

    在采用分布式系统架构时,我们会经常使用到阿里巴巴的dubbo的分布式框架. 在相关xml配置了dubbo的约束依赖后,即使能上网eclipse.myeclipse等IDE也是无法识别dubbo的相关约 ...

  6. 洛谷——P2709 小B的询问

    P2709 小B的询问 莫队算法,弄两个指针乱搞即可 这应该是基础莫队了吧 $x^2$可以拆成$((x-1)+1)^2$,也就是$(x-1)^2+1^2+2\times (x-1)$,那么如果一个数字 ...

  7. zabbix部署-版本3.2.6

    172.18.237.14:一台主机上安装LAMP环境以及zabbix_server.zabbix_agentd 一.安装zibbix-server 1.环境要求 yum install mysql- ...

  8. stm32实现iap远程固件更新

    前提 想来做iap升级了,应该不是什么新手. 下面的程序需要用到一些简单的功能 串口收发数据开关总中断虽然本文标题是实现远程固件更新,但是具体远程方案本文不做详细说明,重点在于介绍mcu接收到新的固件 ...

  9. C++ 输入外挂

    inline int read() { int x=0;char ch=getchar(); while(ch<'0'||ch>'9')ch=getchar(); while(ch> ...

  10. List lambda 排序

    Comparator<PromotionRule> comparator = Comparator.comparing(PromotionRule::getCreatedTime); pr ...