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 + ;
// 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的更多相关文章
- NSString属性什么时候用copy,什么时候用strong?
我们在声明一个NSString属性时,对于其内存相关特性,通常有两种选择(基于ARC环境):strong与copy.那这两者有什么区别呢?什么时候该用strong,什么时候该用copy呢 ...
- iOS UIAlertController跟AlertView用法一样 && otherButtonTitles:(nullable NSString *)otherButtonTitles, ... 写法
今天写弹出框UIAlertController,用alertView习惯了,所以封装了一下,跟alertView用法一样,不说了,直接上代码: 先来了解一下otherButtonTitles:(nul ...
- 【去除NSString 字符串中的空格换行符】
@interface NSString (DeletWhiteSpace) // 返回一个去掉前后空格的字符串或者下划线,如果自己是一个nil 返回@“” - (NSString *)trimming ...
- NSString 的常用操作
NSString *testStr01=@"HelloWord"; NSString *testStr02=[testStr01 substringToIndex:];//取头(从 ...
- 时间戳转化为日期TimeStamp转NSDate转NSString
//时间戳处理 NSInteger time = [self.album.updatedAt integerValue] / 1000; NSNumber *timer = [NSNumber num ...
- iOS - Json解析精度丢失处理(NSString, Double, Float)
开发中处理处理价格金额问题, 后台经常返回float类型, 打印或转成NSString都会有精度丢失问题, 因此使用系统自带的NSDecimalNumber做处理, 能解决这问题:经过测试其实系统NS ...
- iOS NSString中的搜索方法rangeOfString
NSString *str = @"your://aaa?backscheme=my"; //在str中查找“backscheme=”,并返回一个NSRange类型的值,我们可以通 ...
- NSString相关操作
//创建一个字符串对象 NSString * str_1 = @"Hello"; //字面量方法 ; NSString * str_2 = [NSString stringWith ...
- NSString 和NSData 转换
NSString 转换成NSData 对象 NSData* xmlData =[@"testdata" dataUsingEncoding:NSUTF8StringEncoding ...
- NSString 初始化方法的内存比较
NSString *str1 = @"hello"; NSString *str2 = @"hello"; NSString *str3 = [NSString ...
随机推荐
- 梦想CAD控件安卓选择集
在本示例中将使用构造选择集对被过滤对象进行过滤,该类封装了选择集及其处理函数,支持如下过滤条件. 参数类型 类型 RTDXF0 TEXT 文字 MTEXT 多行文字 CIRCLE 圆 ARC 圆弧 L ...
- jQuery鼠标划入划出
今天来简单的谈谈jQuery的一个划入划出的方法,.首先划入划出能想到的东西有哪些呢,. 1:hover 2:mouseenter/mouseleave 3:mouseover/mouseout. 一 ...
- 16Log4J
Log4J Log4j是Apache的一个开放源代码项目,通过使用Log4j,我们可以控制日志信息输送的目的地是控制台.文件.GUI组件.甚至是套接口服务器.NT的事件记录器.UNIX Syslog守 ...
- java jvm eclipse 性能调优
低配配置 -Dfile.encoding=UTF-8-Xms960m-Xmx960m-Xmn384m-Xverify:none-Xss256k-XX:MaxTenuringThreshold=2-XX ...
- react antD 日期选择
<DatePicker disabledDate={disabledDate} onChange={this.onChange} /> //创建时间禁用大于当前时间 <moment( ...
- Windows下运行jekyll,编码已不再是问题
很久没更新jekyll了,所以好奇着去官网看了下更新记录,发现如下更新条目(版本1.3.0/2013-11-04发布): Add encoding configuration option (#144 ...
- UVA 674 Coin Change (完全背包)
解法 dp表示目前的种数,要全部装满所以f[0]=1其余为0的初始化是必不可少的 代码 #include <bits/stdc++.h> using namespace std; int ...
- 转来的——python webdriver自动化测试初步印象——转来的
python webdriver自动化测试初步印象 以下示例演示启动firefox,浏览google.com,搜索Cheese,等待搜索结果,然后打印出搜索结果页的标题 from selenium i ...
- UVA - 10825 Anagram and Multiplication
题目链接:http://acm.hust.edu.cn/vjudge/problem/viewProblem.action?id=34594 有一个m位n进制的数,它的特性是这个数依次乘以2,3... ...
- [spoj1182][Sorted Bit Sequence] (数位dp)
Description Let's consider the 32 bit representation of all integers i from m up to n inclusive (m ≤ ...