OC_NSString、
8月17日NSString
- //1.创建常量字符串
- NSString *str1 = @"hello world";
- NSLog(@"%@",str1);
- //2.通过类方法创建字符串
- NSString *str2 = [NSString stringWithString:str1];
- NSLog(@"str2 = %@",str2);
- //3.通过实例方法创建字符串
- NSString *str3 = [[NSString alloc]initWithString:str1];
- NSLog(@"str3 = %@",str3);
- //4.通过格式化方式创建字符串
- NSString *str4 = [NSString stringWithFormat:@"user = %@,pwd = %@",@"xu",@"123456"];
- NSLog(@"str4 = %@",str4);
- //5.通过C语言字符串创建
- const char *str5 = "how are you";
- NSString *str6 = [NSString stringWithUTF8String:str5];
- NSLog(@"str6 = %@",str6);
- //6.通过文件方式创建字符串
- NSError *error;
- NSString *str7 = [NSString stringWithContentsOfFile:@"/Users/mac/Desktop/OC进行时/day06/01-NSString/1.txt" encoding:NSUTF8StringEncoding error:&error];
- if (!error) {
- NSLog(@"str7 = %@",str7);
- }
- else
- {
- NSLog(@"文件读取失败:%@",error);
- }
- //7.通过URL方式创建字符串
- NSURL *url = [NSURL URLWithString:@"http://www.baidu.com"];
- NSString *str8 = [NSString stringWithContentsOfURL:url encoding:NSUTF8StringEncoding error:&error];
- if (!error) {
- NSLog(@"str8 = %@",str8);
- }
- else
- {
- NSLog(@"文件读取失败:%@",error);
- }
- NSString *str1 = @"hello world";
- NSString *str2 = @"how are you";
- NSString *str3 = [NSString stringWithString:str1];//使用已有的字符串创建新的字符串
- //方式1
- if (str1 == str3){
- NSLog(@"str1 == str3");
- }
- //方式2
- if ([str1 isEqual:str3]) {
- NSLog(@"str1 == str3");
- }
- //方式3
- if ([str1 isEqualTo:str3]) {
- NSLog(@"str1 == str3");
- }
- //方式4
- if([str1 isEqualToString:@"hello world"])
- {
- NSLog(@"str1 == str3");
- }
- //方式5
- NSComparisonResult result = [str1 compare:str2];
- if (result == NSOrderedSame) {
- NSLog(@"str1 == str2");
- }
- else if (result == NSOrderedAscending)
- {
- NSLog(@"str1 < str2");
- }
- else//NSOrederDescending
- {
- NSLog(@"str1 > str2");
- }
- /*
- compare的是一个枚举类型的,如果返回值为:-1表示NSOrderedAscending;返回值为0:NSOrderedSame;返回值为1:NSOrderedDescending
- */
- NSString *str1 = @"how are you";
- NSRange range = [str1 rangeOfString:@"are"];
- NSLog(@"location = %ld,length = %ld",range.location,range.length);
- NSString *str2 = @"http://www.baidu.com”;
- //判断字符串是否以某前缀开头
- if ([str2 hasPrefix:@"http://"]) {
- NSLog(@"http协议");
- }
- //判断字符串是否以某后缀结尾
- NSString *str3 = @"/users/destTop/1.txt";
- if ([str3 hasSuffix:@"txt"]) {
- NSLog(@"文本文件");
- }
- NSString *str4 = @"http://www.baidu.com?user=admin&pwd=123456";
- NSRange range1 = [str4 rangeOfString:@"user="];
- NSRange range2 = [str4 rangeOfString:@"pwd="];
- NSUInteger location = range1.location + range1.length;
- NSUInteger length = range2.location-location;
- NSRange range3 = NSMakeRange(location, length);
- NSString *user = [str4 substringWithRange:range3];
- NSString *pwd = [str4 substringFromIndex:range2.location + range2.length];
- NSLog(@"user = %@,pwd =%@",user,pwd);
四、其他类型转换字符串
- NSString *str1 = [NSString stringWithFormat:@"%d,%.2f,%c,%s",10,12.34,'a',"hello world"];
- NSLog(@"str1 = %@",str1);
- //1.字符串转整型
- NSString *str2 = @"20";
- NSInteger i = [str2 integerValue];
- NSLog(@"i = %ld",i);
- //2.字符串转实型
- CGFloat j = [str2 doubleValue];
- NSLog(@"j = %.2lf",j);
- //3.字符串转C语言字符串
- NSString *str4 = @"how are you";
- const char *pStr = [str4 UTF8String];
- NSLog(@"pStr = %s",pStr);
- typedef struct
- {
- char *name;
- int age;
- char gender;
- }Student;
- Student stu = {“zhangsan”,22,’F’};
- NSValue *value = [NSValue valueWithBytes:&stu objcType:@encode(Student)];
- NSLog(@“name = %s,age = %d,gender = %c”,stu.name,stu.age,stu.gender);
- Student stu2;
- [value getValue:&stu2];
- NSLog(@“name = %s,age = %d,gender = %c”,stu2.name,stu2.age,stu2.gender);
/* 封装自定义结构体的操作:
1.声明结构体变量
2.创建一个NSValue的值对象,并将结构体变量的地址存放进去,
3.也可以通过getValue将值对象存储的数据存放到另外一个结构体变量中。
*/
- NSRange range = NSMakeRange(0,5);
- //2.创建一个值对象
- NSValue *value = [NSValue valueWithRange:range];
- //3.取出这个值对象的值
- NSRange range2 = [value rangeValue];
- NSArray *arr1 = @[@"one",@"two",@"three",@"four”];
- //通过对象
- NSArray *arr2 = [NSArray arrayWithObjects:@"one",@"two",@"three",@"four", nil];
- NSArray *arr3 = [[NSArray alloc]initWithObjects:@"one",@"two",@"three",@"four", nil];
- NSArray *arr4 = [[NSArray alloc]initWithArray:arr3];
- //第一种:
- for (int i = 0; i<[arr2 count]; i++) {
- NSLog(@"arr2->%@",arr2[i]);
- }
- //第二种:
- for (int i = 0; i < [arr2 count]; i++) {
- NSLog(@"arr2->%@",[arr2 objectAtIndex:i]);
- }
- //第三种:
- [arr2 enumerateObjectsUsingBlock:^(id obj, NSUInteger idx, BOOL *stop) {
- NSLog(@"index = %ld,obj = %@",idx,obj);
- if ([obj integerValue] == 3) {
- *stop = YES;
- }
- }];
- //第四种:
- for(id obj in arr2)
- {
- NSLog(@"%@",obj);
- }
OC_NSString、的更多相关文章
- js-静态、原型、实例属性
本篇来说一下js中的属性: 1.静态属性 2.原型属性 3.实例属性 静态属性: function klass(){} var obj=new klass(); klass.count=0; klas ...
- 【.net 深呼吸】细说CodeDom(2):表达式、语句
在上一篇文章中,老周厚着脸皮给大伙介绍了代码文档的基本结构,以及一些代码对象与CodeDom类型的对应关系. 在评论中老周看到有朋友提到了 Emit,那老周就顺便提一下.严格上说,Emit并不是针对代 ...
- javascript中的Array对象 —— 数组的合并、转换、迭代、排序、堆栈
Array 是javascript中经常用到的数据类型.javascript 的数组其他语言中数组的最大的区别是其每个数组项都可以保存任何类型的数据.本文主要讨论javascript中数组的声明.转换 ...
- IE6、7下html标签间存在空白符,导致渲染后占用多余空白位置的原因及解决方法
直接上图:原因:该div包含的内容是靠后台进行print操作,输出的.如果没有输出任何内容,浏览器会默认给该空白区域添加空白符.在IE6.7下,浏览器解析渲染时,会认为空白符也是占位置的,默认其具有字 ...
- jQuery UI resizable使用注意事项、实时等比例拉伸及你不知道的技巧
这篇文章总结的是我在使用resizable插件的过程中,遇到的问题及变通应用的奇思妙想. 一.resizable使用注意事项 以下是我在jsfiddle上写的测试demo:http://jsfiddl ...
- 初识Hadoop、Hive
2016.10.13 20:28 很久没有写随笔了,自打小宝出生后就没有写过新的文章.数次来到博客园,想开始新的学习历程,总是被各种琐事中断.一方面确实是最近的项目工作比较忙,各个集群频繁地上线加多版 ...
- boosting、adaboost
1.boosting Boosting方法是一种用来提高弱分类算法准确度的方法,这种方法通过构造一个预测函数系列,然后以一定的方式将他们组合成一个预测函数.他是一种框架算法,主要是通过对样本集的操作获 ...
- 《Web 前端面试指南》1、JavaScript 闭包深入浅出
闭包是什么? 闭包是内部函数可以访问外部函数的变量.它可以访问三个作用域:首先可以访问自己的作用域(也就是定义在大括号内的变量),它也能访问外部函数的变量,和它能访问全局变量. 内部函数不仅可以访问外 ...
- .Net Core MVC 网站开发(Ninesky) 2.4、添加栏目与异步方法
在2.3中完成依赖注入后,这次主要实现栏目的添加功能.按照前面思路栏目有三种类型,常规栏目即可以添加子栏目也可以选择是否添加内容,内容又可以分文章或其他类型,所以还要添加一个模块功能.这次主要实现栏目 ...
随机推荐
- spark+hadoop+sqoop+hive平台bug解决方法
bug集锦 1. hadoop平台datanode无法启动: 原因: 由于多次hdfs namenode -format导致dfs/data/current/version中的cluserID与当前的 ...
- jq中prop和attr的区别以及各自的使用
在高版本的jquery引入prop方法后,什么时候该用prop?什么时候用attr?它们两个之间有什么区别?这些问题就出现了. 关于它们两个的区别,网上的答案很多.这里谈谈我的心得,我的心得很简单: ...
- (转)初步认识拓展UnityEditor编辑器定制
初步认识拓展UnityEditor编辑器定制 热度 9529 2015-9-4 18:50 |个人分类:Unity3d| 编辑器, 拓展 我相信无数初学者看别人游戏都经常看到他们的Inspector中 ...
- jsx编译器 atom
开始学习react es6 觉得没有合适的编译器.于是找到了个Atom. 官网 https://atom.io/ 下载安装. 双击运行即可完成安装. 安装后点击 file>setting> ...
- PHP 规划(收藏的一些好博文)
2014-10-15 01:30 36870人阅读 评论(34) 收藏 举报 分类: PHP/DHTML/Other(237) 版权声明:本文为博主原创文章,未经博主允许不得转载. PHP程序员的技术 ...
- mac中一一些常用的命令
本文转载至 http://blog.csdn.net/chen505358119/article/details/9244701 这里主要讲的是mac中的一些命令,怕忘记了所以记在这里. 1.首先 ...
- 学生成绩管理系统【c】
#include<stdio.h> #include<stdlib.h> #include<string.h> #include<conio.h> #d ...
- 【BZOJ4199】[Noi2015]品酒大会 后缀数组+并查集
[BZOJ4199][Noi2015]品酒大会 题面:http://www.lydsy.com/JudgeOnline/wttl/thread.php?tid=2144 题解:听说能用SAM?SA默默 ...
- Oracle 物理体系
Oracle 物理体系 Oracle 物理体系 问题 参考资料 Oracle 物理体系 PGA:program global area ,私有不共享内存. PGA起到预处理的作用: ...
- java读取本地文件
File file = new File("F:/hejing/InstrumentJsonData.txt"); StringBuilder localStrBul ...