可以直接复制代码即可运行看看结果,方便理解

//NSString

//OC字符串不能用printf输出

//但是遗憾的是OC没有一个从终端读取数据的方式,需要使用scanf读取C字符串然后转换成OC的字符串

#pragma mark 字符初始化

//创建一个不可变字符串str1 值是常量字符串

//打印字符串用%@来打印

//%@还可以打印对象

NSString * str1 = @"常量字符串";

NSLog(@"%@",str1);

//用字符串创建字符串

NSString * str2 = [[NSString alloc]initWithString:str1];

NSLog(@"%@",str2);

//用字符串的格式化来初始化创建一个字符串

//API

NSString * str3 = [[NSString alloc]initWithFormat:@"%@%d%f",@"abc",123,12.3];

NSLog(@"%@",str3);

//用字符串的类方法创建一个格式化字符串

NSString * str4 = [NSString stringWithFormat:@"%@%d",@"def",456];

NSLog(@"%@",str4);

#pragma mark 将C语言字符串转换成OC字符串

//OC中只要遇到字符串编码的问题均为NSUTF8StringEncoding

//万国码unicode

NSString * str5 = [[NSString alloc]initWithCString:"ABC" encoding:NSUTF8StringEncoding];

NSLog(@"%@",str5);

char * p = "abc";

NSString  * str5_1 = [[NSString alloc]initWithUTF8String:p];

NSLog(@"%@",str5_1);

//类方法转换C字符串

NSString * str5_2 = [NSString stringWithCString:p encoding:NSUTF8StringEncoding];

NSString * str5_3 = [NSString stringWithUTF8String:p];

NSLog(@"%@ %@",str5_2, str5_3);

#pragma mark 字符串的比较

//判断字符串中不能是用 == 判断

//在设计NSString时,内部应用了一种优化的思想, 享元设计思想

//在设计字符串的时候,会有一个缓冲池,只要缓冲池中有当前字符串,那么就会返回当前字符串的地址,不会再去重复创建,因为大量的创建字符串会消耗内存,所以提过了这种方式,当我们是用StringWithFormat的时候回重新创建一个新的字符串,所以不能用 == 号进行判断

//在判断字符串中 == 判断的是字符串的指针地址是否相等,存在一定判断错误的风险.

//在实际开发中不能是用== 而是使用专门判断字符串想的方法 isEqualToString

NSString * str6 = @"ab";

NSString * str6_1 = @"你好";

//接收返回值

//BOOL isOK = [str6 isEqualToString:str6_1];

if([str6 isEqualToString:str6_1]){

NSLog(@"%@ == %@",str6,str6_1);

}else{

NSLog(@"%@ != %@",str6,str6_1);

}

//获取字符串的长度

//在NSString中 任何字母,数字,中文字符的长度都是1

NSLog(@"%@的长度是%ld",str6,[str6 length]);

//@"abcde";

//字符串的位置是从0开始计数的

//一个汉字占2个字节

NSString * str7 = @"xcode";

//获取单个字符

//unichar 是两个字节的 char

//字符串的位置是从0开始计数的

unichar newChar = [str7 characterAtIndex:4];

NSLog(@"newChar = %c",newChar);

//NSString中有汉字 "%C"

unichar hanzi = [str6_1 characterAtIndex:0];

NSLog(@"hanzi = %C",hanzi);

//比较两个字符串的大小

NSString * str8 = @"yang chang";

NSString * str8_1 = @"B duan";

NSComparisonResult result =[str8 compare:str8_1];

if (result == NSOrderedSame) {

NSLog(@"%@ = %@",str8 ,str8_1);

//升序 前者小 后者大

}else if (result == NSOrderedAscending){

NSLog(@"%@ < %@",str8,str8_1);

//降序 前者大 后者小

}else if(result == NSOrderedDescending){

NSLog(@"%@ > %@",str8,str8_1);

}

#pragma mark 字符串的拼接

NSString * str9 = @"北京北京";

NSString * str9_1 = @"我最帅";

//str9_1拼接到str9的后面

NSString * str9_2 =  [str9 stringByAppendingString: str9_1];

NSLog(@"%@",str9_2);

//格式化拼接 在初始化字符串的同时进行拼接

str9_2 = [str9 stringByAppendingFormat:@"%@%d%f",str9_1,520,520.0];

NSLog(@"%@",str9_2);

//如何遍历字符串中每一个字符

NSString * str10 = @"abcdefgh";

for(int i = 0; i<[str10 length];i++){

char c = [str10 characterAtIndex:i];

NSLog(@"%d = %c ",i,c);

}

#pragma mark 字符串的查找

NSString * str11 = @"你好北京123";

//在当前字符串str11中查找123这个字符串,将他的位置和长度返回

NSRange range = [str11 rangeOfString:@"123"];

NSLog(@"loc = %lu , len = %lu",range.location,range.length);

/**

typedef struct _NSRange {

NSUInteger location;//这个是位置不是长度!!!!!

NSUInteger length;//这个是长度不是位置!!!

} NSRange;

*/

//判断当前字符串是否存在?

if(range.location != NSNotFound){

NSLog(@"123在%@中位置是%lu",str11,range.location);

}else{

NSLog(@"123不再字符串");

}

if(range.length != 0){

NSLog(@"123在%@中长度是%lu",str11,range.length);

}else{

NSLog(@"不在");

}

#pragma mark 字符串的截取

NSString * str12 = @"北京欢迎您,iOS入门还是比较容易的ios";

//是从字符串str12中截取出一个子串(从原串第0个字符开始截取到传入得[值-1]的位置)

NSString * str12_1 = [str12 substringToIndex:5];

NSLog(@"str12_1 = %@",str12_1);

//字符串str12中截取指定位置6到字符串的结尾

NSString * str12_2 = [str12 substringFromIndex:6];

NSLog(@"str12_2 = %@", str12_2);

//通过已知的范围range在原字符串中查找子串

//第一个是位置

//第二个是长度

NSRange range2 = {2,4};

NSLog(@"%@",[str12 substringWithRange:range2]);

//将原串str12指定范围内的字符用@"努力学习"替换

NSString * str12_3 = [str12 stringByReplacingCharactersInRange: NSMakeRange(0, 9) withString:@"努力学习"];

NSLog(@"str12_3 = %@",str12_3);

#pragma mark 判断前缀和后缀

NSString * str13 = @"http://www.baidu.com";

//检查某个字符串是否已指定的字符串开始(前缀)

if([str13 hasPrefix:@"http"]){

NSLog(@"是");

}else{

NSLog(@"不是");

}

//检查后缀

if([str13 hasSuffix:@"com"]){

NSLog(@"是");

}else{

NSLog(@"不是");

}

#pragma mark 字符串的转换

NSString * str14 = @"abc";

//将str14转换成大写

str14 = [str14 uppercaseString];

NSLog(@"%@",str14);

//将str14转换成小写

str14 = [str14 lowercaseString];

NSLog(@"%@",str14);

//将基本类型转换型字符串

//    stringWithFormat

//    initWithFormat

//将字符串转换成基本数据类型

NSString * str14_1 = @"1";

int a = [str14_1 intValue];

//floatValue

//doubleValue

NSString * str14_2 = @"YES";

BOOL isOK = [str14_2 boolValue];

//boolValue

NSLog(@"%d",a);

//@"1"

#pragma mark 字符串的拆分

NSString * str15 = @"a,b,c,d";

//用指定的分隔符将字符串才分成数组

//is+-n*/io=pp

NSArray * array =  [str15 componentsSeparatedByString:@","];

NSLog(@"%@",array);

//    for (int i= 0; i<[array count];i++) {

//        NSLog(@"%@",[array objectAtIndex:i]);

//    }

#pragma mark 从指定文件读取字符串

//将文件的内容读入到字符串中

//第一个参数是文件的路径

//第二个字符编码

//第三个错误信息

NSString * str16 = [NSString stringWithContentsOfFile:@"/Users/hhh/Desktop/github.txt" encoding:NSUTF8StringEncoding error:nil];

NSLog(@"str16 = %@",str16);

//从网上读取文件内容到字符串中

//第一个 网址

//第二个 字符编码

//第三个 错误信息

NSString * str17 = [NSString stringWithContentsOfURL:[NSURL URLWithString:@"http://10.0.178.5/resource/github.txt"]encoding:NSUTF8StringEncoding error:nil];

NSLog(@"str17 = %@",str17);

//写入文件

//第一个是目标文件路径

//第二个是否写入缓存(原子)

//第三个编码

//第四个错误信息

//如果没有文件,那么就会创建出一个新的文件,如果原文件已经存在,那么会覆盖原文件

[str12 writeToFile:@"/Users/hhh/Desktop/aa.txt"  atomically:YES encoding:NSUTF8StringEncoding error:nil];

iOS不可变字符串的所有操作的更多相关文章

  1. iOS可变字符串的所有操作

    可直接把代码复制即可结合输出看结果加深记忆 //创建一个可变字符串 NSMutableString * ms1 = [[NSMutableString alloc]init]; //可以通过类方法来创 ...

  2. iOS不可变数组的所有操作

    #pragma mark 创建数组 //1.通过对象方法创建数组 NSArray * array = [[NSArray alloc]initWithObjects:@"One", ...

  3. ios除去可变字符串中的某些字符

    //除去字符串中的"111@" NSMutableString *str = [[NSMutableString alloc]initWithFormat:@"111@s ...

  4. IOS 学习笔记 2015-03-24 OC-API-不可变字符串

    大部分是模仿// // main.m // OC-API-不可变字符串 // // Created by wangtouwang on 15/3/25. // Copyright (c) 2015年 ...

  5. iOS 可变字符串NSMutableString的使用

    .创建一个可变字符串 NSMutableString * ms1 = [[NSMutableString alloc]init]; .可以通过类方法来创建 NSMutableString * ms2 ...

  6. 初级:使用MD5对字符串进行加密操作

    加密技术在企业数据安全中的应用: 大型企业管理软件的应用越来越广泛,企业数据平台涉及局域网.广域网. Internet等,在各类系统中保存的企业关键数据量也越来越大,许多数据需要保存数十年以上,甚至是 ...

  7. iOS - OC NSString 字符串

    前言 @interface NSString : NSObject <NSCopying, NSMutableCopying, NSSecureCoding> @interface NSM ...

  8. iOS中的字符串NSString

    创建一个字符串对象: NSstring * str1 = @"hello world"; NSString * str = [[NSString alloc]initWithStr ...

  9. 使用sed命令向文件中追加可变字符串

    1.如何向文件追加可变字符串,有如下两种方法 sed -i '1a '$s'' filename sed -i "1a $s" filename 注意: 以上命令是假定向文件fil ...

随机推荐

  1. attr绑定

    目的 attr绑定可以设置DOM元素的属性值.例如,当我们需要设置title的值,或者一个img的src值,或者一个超链接的href,使用属性绑定会在model的值发生改变时动态的更新绑定的属性值. ...

  2. PHP程序员的技术成长规划(转)

    按照了解的很多PHP/LNMP程序员的发展轨迹,结合个人经验体会,抽象出很多程序员对未来的迷漫,特别对技术学习的盲目和慌乱,简单梳理了这个每个阶段PHP程序员的技术要求,来帮助很多PHP程序做对照设定 ...

  3. mvc log4net将日志写入数据库失败解决之道——开启内部调试

    项目信息:spring mvc5  EF6 数据库:sql2008r2 log4net版本:1.2.10.0 第一天: 1.思路一:配了半天,一直无法写入数据库,网上搜了一大堆的资料,都没能解决,怀疑 ...

  4. Pthon修炼5

    函数    一.自定义函数 def:表示函数的关键字 函数名:函数的名称 函数体:函数中进行一系列的逻辑计算 参数:为函数体提供数据 返回值:执行完函数return 一个值 例:def count(x ...

  5. 用perl发送数据到钓鱼站

    一个皮皮果的游戏很火 估计很多人想黑 偶然发现一个钓鱼站: http://ppgpergame.com/ 钓用户名与密码 抓包后发现数据会发送到: http://ppgpergame.com/db.a ...

  6. OvS: ovs-ofctl adding parameters analysis

    if using dpdk, then OvS' datapath folder is ignored. Only OvS' userspace code are in use. According ...

  7. 《JavaScript高级程序设计》读书笔记 ---RegExp 类型

    ECMAScript 通过RegExp 类型来支持正则表达式.使用下面类似Perl 的语法,就可以创建一个正则表达式.var expression = / pattern / flags ; 其中的模 ...

  8. php中的curl常用例子

    1.基本请求 <?php $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, "http://www.baidu.com"); ...

  9. Faster-R-CNN编译使用及相应问题解决

    1.首先opencv是需要安装的,我用的ubuntu14.04,opencv3.0,具体安装教程可以参考网上很多,不想多提. 2.安装几个依赖包:cython,python-opencv和easydi ...

  10. pull类型消息中间件-消息消费者(二)

    消费者的实例化 关于consumer的默认实现,metaq有两种: DefaultMQPullConsumer:由业务方主动拉取消息 DefaultMQPushConsumer:通过业务方注册回调方法 ...