OC4_NSString操作
//
// main.m
// OC4_NSString操作
//
// Created by zhangxueming on 15/6/10.
// Copyright (c) 2015年 zhangxueming. All rights reserved.
// #import <Foundation/Foundation.h> //NSString
int main(int argc, const char * argv[]) {
@autoreleasepool {
NSString *str1 = @"hello world 千锋";
//求字符串长度
NSUInteger len = [str1 length];
NSLog(@"len = %li", len);
//获取字符串指定位置的字符
unichar ch = [str1 characterAtIndex:];
NSLog(@"ch = %C", ch);//%C打印unichar字符 %c打印ASCII字符 //字符串提取
//从传入下标位置提取子串到字符串结束
NSString *subStr1 = [str1 substringFromIndex:];
NSLog(@"subStr1 = %@", subStr1);
//提取子串到指定位置(不包含下标位置字符)
NSString *subStr2 = [str1 substringToIndex:];
NSLog(@"subStr2 = %@",subStr2); //提取指定范围内的字符串
NSRange range = {,};
NSString *subStr3 = [str1 substringWithRange:range];
NSLog(@"subStr3 = %@", subStr3); //NSMakeRange();//构建NSRange变量
NSString *subStr4 = [str1 substringWithRange:NSMakeRange(, )];
NSLog(@"subStr4 = %@", subStr4); //字符串比较
NSString *str2 = [NSString stringWithCString:"hallo world中国" encoding:NSUTF8StringEncoding];
NSString *str3 = [NSString stringWithUTF8String:"hello world中国"];
NSComparisonResult result = [str2 compare:str3];
if (result == NSOrderedAscending) {//递增
NSLog(@"str2 < str3");
}
else if(result == NSOrderedDescending)//递减
{
NSLog(@"str2 > str3");
}
else
{
NSLog(@"str2 == str3");
}
//以大小写不敏感方式比较字符串
//[str2 caseInsensitiveCompare:str3];
//判断两个字符串是否相等
//- (BOOL)isEqualToString:(NSString *)aString;
BOOL ret = [str2 isEqualTo:str3];
if (ret==YES) {
NSLog(@"str2 == str3");
}
else
{
NSLog(@"str2 != str3");
}
//判断前缀子串
//- (BOOL)hasPrefix:(NSString *)aString;
BOOL ret1 = [@"www.baidu.com" hasPrefix:@"www."];
NSLog(@"ret1 = %d", ret1);
//判断后缀子串
//- (BOOL)hasSuffix:(NSString *)aString;
BOOL ret2 = [@"www.hao123.com" hasSuffix:@"com"];
NSLog(@"ret2 = %d", ret2);
//判断是否包含子串(10.10macos)
BOOL ret3 = [@"hao123" containsString:@"hao"];
NSLog(@"ret3 = %d", ret3); //查找子串
NSString *str4 = [[NSString alloc] initWithFormat:@"%s","hello world qianworldfeng"];
NSRange range1 =[str4 rangeOfString:@"world"];
if (range1.location == NSNotFound) {//不能查找对应的子串, 返回long类型最大值
NSLog(@"没有查找到字串 notfound = %lu", NSNotFound);
}
else
{
NSLog(@"location = %lu length = %lu", range1.location, range1.length);
} //倒序查找子串
NSRange range2 = [str4 rangeOfString:@"world" options:NSBackwardsSearch];
NSLog(@"location = %li length = %li", range2.location, range2.length); //字符串追加
//并不是直接在原字符串的末尾追加字符串, 而是利用传入的字符串及原字符串创建一个新的字符串
NSString *str5 = @"hello";
NSLog(@"%p", str5);
str5 = [str5 stringByAppendingString:@"world"];
NSLog(@"str5 = %@", str5);
NSLog(@"%p", str5); //格式化追加字符串
NSString *str6 = @"qianfeng";
str6 = [str6 stringByAppendingFormat:@"%d%s",,"helloworld"];
NSLog(@"str6 = %@", str6); //把字符换串对象转换成整型 浮点型
int a = [@"" intValue];
float f = [@"3.14" floatValue];
NSLog(@"a = %d f = %.2f", a, f); //返回公共前缀子串
NSString *str7 = [@"www.baidu.com" commonPrefixWithString:@"www.hao123.com" options:NSLiteralSearch];
NSLog(@"str7 = %@", str7); //大小写转换
//把小写字母转换成大写字母
NSString *str8 = [@"baidu中国" uppercaseString];
NSLog(@"str8 = %@", str8);
//把大写字母转换成小写字母
NSString *str9 = [@"BaiDU" lowercaseString];
NSLog(@"str9 = %@", str9);
//把每个单词的首字母大写
NSString *str10= [@"bai du qian feng" capitalizedString];
NSLog(@"str10 = %@", str10); //字符串替换
//- (NSString *)stringByReplacingOccurrencesOfString:(NSString *)target withString:(NSString *)replacement
NSString *str11= @"hello world qianfeng hello world hello hell qianfeng";
str11 = [str11 stringByReplacingOccurrencesOfString:@"hello" withString:@"welcome"];
NSLog(@"str11 = %@", str11); //替换指定范围内的字符
//- (NSString *)stringByReplacingCharactersInRange:(NSRange)range withString:(NSString *)replacement
NSString *str12 = @"hello world qianfeng";
str12 = [str12 stringByReplacingCharactersInRange:NSMakeRange(, ) withString:@"welcome"];
NSLog(@"str12 = %@", str12); //把OC的字符串对象转换成C字符串
NSLog(@"%s", [@"hello world" UTF8String]); //用网址的内容生成OC字符串对像
//- (instancetype)initWithContentsOfURL:(NSURL *)url encoding:(NSStringEncoding)enc error:(NSError **)error;
//+ (instancetype)stringWithContentsOfURL:(NSURL *)url encoding:(NSStringEncoding)enc error:(NSError **)error;
NSURL *url= [[NSURL alloc] initWithString:@"http://www.baidu.com"];
NSString *urlContent = [[NSString alloc] initWithContentsOfURL:url encoding:NSUTF8StringEncoding error:nil];//nil 空指针
NSLog(@"urlContent = %@", urlContent); //用文件的内容生成字符串
//- (instancetype)initWithContentsOfFile:(NSString *)path encoding:(NSStringEncoding)enc error:(NSError **)error;
//+ (instancetype)stringWithContentsOfFile:(NSString *)path encoding:(NSStringEncoding)enc error:(NSError **)error;
NSString *fileContent = [NSString stringWithContentsOfFile:@"/Users/zhangxueming/Desktop/json.txt" encoding:NSUTF8StringEncoding error:nil];
NSLog(@"fileContent = %@", fileContent); }
return ;
}
OC4_NSString操作的更多相关文章
- 关于DOM的操作以及性能优化问题-重绘重排
写在前面: 大家都知道DOM的操作很昂贵. 然后贵在什么地方呢? 一.访问DOM元素 二.修改DOM引起的重绘重排 一.访问DOM 像书上的比喻:把DOM和JavaScript(这里指ECMScri ...
- Sql Server系列:分区表操作
1. 分区表简介 分区表在逻辑上是一个表,而物理上是多个表.从用户角度来看,分区表和普通表是一样的.使用分区表的主要目的是为改善大型表以及具有多个访问模式的表的可伸缩性和可管理性. 分区表是把数据按设 ...
- C# ini文件操作【源码下载】
介绍C#如何对ini文件进行读写操作,C#可以通过调用[kernel32.dll]文件中的 WritePrivateProfileString()和GetPrivateProfileString()函 ...
- js学习笔记:操作iframe
iframe可以说是比较老得话题了,而且网上也基本上在说少用iframe,其原因大致为:堵塞页面加载.安全问题.兼容性问题.搜索引擎抓取不到等等,不过相对于这些缺点,iframe的优点更牛,跨域请求. ...
- jquery和Js的区别和基础操作
jqery的语法和js的语法一样,算是把js升级了一下,这两种语法可以一起使用,只不过是用jqery更加方便 一个页面想要使用jqery的话,先要引入一下jqery包,jqery包从网上下一个就可以, ...
- ASP.NET Aries 入门开发教程7:DataGrid的行操作(主键操作区)
前言: 抓紧勤奋,再接再励,预计共10篇来结束这个系列. 上一篇介绍:ASP.NET Aries 入门开发教程6:列表数据表格的格式化处理及行内编辑 本篇介绍主键操作区相关内容. 1:什么时候有默认的 ...
- 如何在高并发环境下设计出无锁的数据库操作(Java版本)
一个在线2k的游戏,每秒钟并发都吓死人.传统的hibernate直接插库基本上是不可行的.我就一步步推导出一个无锁的数据库操作. 1. 并发中如何无锁. 一个很简单的思路,把并发转化成为单线程.Jav ...
- 【翻译】MongoDB指南/CRUD操作(四)
[原文地址]https://docs.mongodb.com/manual/ CRUD操作(四) 1 查询方案(Query Plans) MongoDB 查询优化程序处理查询并且针对给定可利用的索引选 ...
- 【翻译】MongoDB指南/CRUD操作(三)
[原文地址]https://docs.mongodb.com/manual/ CRUD操作(三) 主要内容: 原子性和事务(Atomicity and Transactions),读隔离.一致性和新近 ...
随机推荐
- Attribute特性验证模型model
数据验证我们往往分为前台验证和后台验证,而我们的后台验证每到一个方法中就要去验证一次,这样的代码想想都难以维护,这篇我们这篇文章就是为了解决这样的问题.用attribute 这个特性来解决这样的问题 ...
- 去ECSHOP版权,去官方后门
ECShop是一款B2C独立网店系统,适合企业及个人快速构建个性化网上商店.系统开源但不免费,是基于PHP语言及MYSQL数据库构架开发的跨平台开源程序.目前最新版本为2.7.3 0708版.1.首先 ...
- linux教程:[4]配置Tomcat开机启动
http://jingyan.baidu.com/article/6525d4b1382f0aac7d2e9421.html 方法/步骤 1 请自行下载安装配置tomcat的服务器环境 本经验仅仅介绍 ...
- tableview 上拉时 标题行出现在顶部不动效果
类似这种效果: 其实很简单,利用tableview 的plain属性,然后使用section,其实滑上去不动的是 section的headView. -(NSInteger)numberOfSect ...
- 【20】宁以pass-by-reference-to-const替换pass-by-value
1.首先理解需求,被调用方法修改了形参,如果期望在主调方法中的实参也发生变化,必须使用pass-by-reference.因为C++缺省情况下(继承C方式),以by-value传递对象,在被调方法中修 ...
- HDU 5477 A Sweet Journey 水题
A Sweet Journey Time Limit: 1 Sec Memory Limit: 256 MB 题目连接 http://acm.hdu.edu.cn/showproblem.php?pi ...
- java大数总结【转】
java大数(2013长春网络赛)--hdu4762总结一下:1.java提交类要写Main.2.读取大数. Scanner read=new Scanner(System.in); BigInteg ...
- 学习笔记之Shell & QSHELL
shell(计算机壳层)_百度百科 http://baike.baidu.com/subview/849/15831672.htm Shell (computing) - Wikipedia, the ...
- 文件和目录之chmod和fchmod函数
本篇博文内容摘自<UNIX环境高级编程>(第二版),仅作个人学习记录所用.关于本书可参考:http://www.apuebook.com/. 这两个函数使我们可以更改现有文件的访问权限: ...
- 文件I/O(不带缓冲)之close函数
可调用close函数关闭一个打开的文件: #include <unistd.h> int close( int filedes ); 返回值:若成功则返回0,若出错则返回-1. 关闭一个文 ...