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),读隔离.一致性和新近 ...
随机推荐
- Altium Designer快捷键 【worldsing笔记】
Shift + R 切换三种布线模式 (忽略, 避开或推挤) Shift + E 触发电气格点开/关 Shift + B 建立查询 Shift + PgUp 放大到最小的递增 Shift + PgDn ...
- 射频识别技术漫谈(13)——Mifare S50与S70【worldisng笔记】
Mifare S50和Mifare S70又常被称为Mifare Standard.Mifare Classic.MF1,是遵守ISO14443A标准的卡片中应用最为广泛.影响力最大的的一员.而Mif ...
- C++学习笔记(二):基本数据类型
带符号整数: short至少16位: int至少与short—样长: long至少32位,且至少与int—样长: long long至少64位,且至少与long—样长: 无符号整数: unsigned ...
- ECSHOP在线手册之布局参考图-首页 index.dwt
A.logo替换 1,设置方法 后台商店设置里,上传logo就行,注意logo的名称必须是logo.gif 2,代码相关 page_header.lbi 中 <a href=" ...
- linux集群时间同步
说明:由于hadoop集群对时间要求很高,所以集群内主机要经常同步.本文档适合ubuntu.redhat系列. 注:很多内容是在网上摘录,然后试验后总结,如有疑问可留言探讨. 1.设置主机时间准确(任 ...
- nginx利用image_filter动态生成缩略图
转自:http://www.nginx.cn/2160.html "我如今是有些图片须要生成缩略图.这个如今加了image_filter这个已经实现了.但我不知道怎么样才干訪问我上传的原图& ...
- 插头dp的几个模板
/* ural1519 求经过全部可行点的哈密顿回路的个数 括号匹配法,转移有点复杂,可是时间空间比較小 */ #include<cstdio> #include<cstring&g ...
- OpenCV 读取.xml文件
OpenCV 只提供了读取和存储.xml和.yml 文件格式的函数. 读取.xml文件的C++例程如下: cv::FileStorage fs; //OpenCV 读XML文件流 cv::Mat De ...
- Nginx动静分离经典
Nginx:安装nginx之前需要安装pcre包和zlib以支持重写,正则以及网页压缩等等]把所需的包下载到/usr/src下[根据自己的习惯,路径可以改变]1.首先安装pcre: cd /usr/s ...
- Nginx + Tomcat + Session
分别下载 tomcat http://archive.apache.org/dist/tomcat/tomcat-7/v7.0.22/bin/apache-tomcat-7.0.22.tar.gz n ...