OC中的字符串:

  C中没有字符串类型,用字符数组和指针代替。

  OC中引入了字符串类型,它包括NSString 和 NSMutableString两种

  NSString是不可变的,已经初始化便不能更改;NSMutableString是可变的,可以对自己进行修改操作的。这类似于Java里的String和BufferString。

为什么NSString是不可变的,NSMutableString是可变的??

  因为NSString在内存的数据结构是List,它是有序排列,大小固定的;而NSMutableString在内存中的数据结构是链表,它“貌似”是随机分配位置的,然后首尾相指就行了。要给NSMutableString添加了新字符,无论这个新字符被分配到了哪儿,只要它指向最后一个字符就行了。

NSString字符串的初始化方法:

        //通过对象方法(动态方法)
NSString * str1 = [[NSString alloc]initWithUTF8String:"wang1"];
NSString * str2 = [[NSString alloc]initWithString:@"wang2"]; //通过类方法(静态方法)
NSString * str3 = [NSString stringWithUTF8String:"wang3"];
NSString *str4 =[NSString stringWithString:"wang4"];

NSString字符串常用方法:

//
// main.m
// NSStringTest
//
// Created by mac on 15-2-25.
// Copyright (c) 2015年 mac. All rights reserved.
// #import <Foundation/Foundation.h> int main(int argc, const char * argv[])
{ @autoreleasepool { NSString *str = @"wang1.avi"; //根据索引获取字符串元素
UniChar ch = [str characterAtIndex:];
NSLog(@"%c",ch); //字符串内容比较
BOOL tag = [str isEqualToString:@"wang1.mp4"];
NSLog(@"%i",tag);
if (tag==NO)
{
NSLog(@"butong");
}else
{
NSLog(@"xiangtong");
} //字符串大小比较
NSComparisonResult ret = [str compare:@"wang2.avi"];
if(ret==NSOrderedAscending) //wang1.avi到wang2.avi是增序的
{
NSLog(@"up");
}else if(ret==NSOrderedDescending)
{
NSLog(@"down");
}else
{
NSLog(@"equal");
} //查找子串的范围range(位置,长度)
NSRange range = [str rangeOfString:@"wang1"];
NSLog(@"%lu,%lu",range.location,range.length); //判断前后缀
BOOL tag1 = [str hasPrefix:@"wang"];
if (tag1==YES)
{
NSLog(@"是以wang为前缀");
} BOOL tag2 = [str hasSuffix:@"avi"];
if (tag2==YES)
{
NSLog(@"是以avi为后缀");
} //数组串转换成数字
NSString *intStr = @"";
NSString *floatStr = @"3.14";
int intNum = [intStr intValue];
float floatNum = [floatStr floatValue];
NSLog(@"_____________%f",intNum+floatNum);
NSLog(@"%i,%f",intNum,floatNum); //大小写转换
NSString *upperStr = [str uppercaseString]; //把wang1.avi转为大写WANG1.AVI
NSString *lowerStr = [upperStr lowercaseString]; //再把WANG1.AVI转为wang1.avi //字符串提取(获取子串)
NSString *subStr1 = [str substringFromIndex:]; //从索引5开始到结尾
NSLog(@"%@",subStr1); NSString *subStr2 = [str substringToIndex:]; //从开头到索引4
// NSRange range1;
// range1.location = 5;
// range1.length = 4;
NSRange range1 = NSMakeRange(, ); //注意:从格式就可以看出,NSMakeRange(5,4)并不是方法,它只是宏替换。
NSString *subStr3 = [str substringWithRange:range1];
NSLog(@"%@__%@",subStr2,subStr3); } return ;
}

NSMutableString字符串的常用方法:

  首先要说的时NSMutableString是继承于NSString的,所以NSString的所有方法都可以用于NSMutableString字符串。但NSMutableString不同之处是,它定义了很多可以最自己进行操作的方法:

//
// main.m
// NSMutableString
//
// Created by mac on 15-2-26.
// Copyright (c) 2015年 mac. All rights reserved.
// #import <Foundation/Foundation.h> int main(int argc, const char * argv[])
{ @autoreleasepool { //NSMutableString字符串不能这样创建
// NSMutableString * mutStr = @"wanger";
// NSMutableString * mutStr = [[NSMutableString alloc]initWithUTF8String:"wanger"]; NSMutableString * mutStr = [NSMutableString stringWithString:@"wang"];
NSString *str = [NSString stringWithUTF8String:".avi"]; //增(拼接)
[mutStr appendString:@".avi"];
// [mutStr appendFormat:@"%@",str];
[mutStr insertString:@"er" atIndex:];
NSLog(@"%@",mutStr); //删
NSRange range1 = NSMakeRange(, );
[mutStr deleteCharactersInRange:range1]; //改
[mutStr setString:@"wangyawen.avi"]; //重置可变字符串内存中的内容 //替换
NSRange range2 = NSMakeRange(, );
[mutStr replaceCharactersInRange:range2 withString:@"mp4"]; //替换 NSLog(@"%@",mutStr); }
return ;
}

---恢复内容结束---

QF——OC字符串的更多相关文章

  1. OC字符串常用函数

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

  2. OC字符串的常用方法

    网上写的关于字符串常用方法的博客很多,这里我简单做了下总结!不喜勿喷哦! 一.创建字符串 #import <Foundation/Foundation.h> //NSString //创建 ...

  3. c语言字符串转OC字符串

    // 如果把c语言字符串转OC字符串,@(C字符串) char *c = "abc"; NSLog(@"%@", @(c));

  4. OC字符串与C语言字符串之间的相互转换

    1.C转OC字符串 const char *cString = "This is a C string"; // 动态方法 NSString *ocString1 = [[NSSt ...

  5. OC字符串NSString

    ========================== 面向对象编程进阶和字符串 ========================== Δ一.类的设计模式—单例 [单例]程序允许过程中,有且仅有一块内存 ...

  6. oc 字符串

    #import <Foundation/Foundation.h> int main(int argc, const char * argv[]) { @autoreleasepool { ...

  7. OC字符串的一些常用的函数。

    )//获取字符串长度 NSUInteger len= str.length; () //通过指定索引返回对应的字符 unichar ch =[str characterAtIndex:]; ()//通 ...

  8. C 和 OC 字符串转换 NSString 和 char * 转换 const char* 与 char *

    #import <Foundation/Foundation.h> int main(int argc, const char * argv[]) { char *s = "He ...

  9. QF——OC中的KVC,KVO

    KVC: (Key Value Coding) 键值编码 所谓KVC,其实就是不通过set和get方法访问对象属性,而是通过属性名字符串动态的去读取属性.KVC其实也是OC反射机制的一种运用. 之所以 ...

随机推荐

  1. To restore the database on a new host-将数据库恢复至一个新的主机上

    To restore the database on a new host:1. Ensure that the backups of the target database are accessib ...

  2. UVA 12219 Common Subexpression Elimination

    题意: 求最小的表达式树,也就是把相同的表达式子树给替换成最前面相同的编号. 分析: 用map<string,int>smp;存放子树对应的字符串,如果以后出现相同的子树则用相同编号表示. ...

  3. oracle中set define off

    set define off关闭替代变量功能 在SQL*Plus中默认的"&"表示替代变量,也就是说,只要在命令中出现该符号,SQL*Plus就会要你输入替代值.这就意味着 ...

  4. NSDictionary json格式字符串转字典,字典转json格式字符串

    + (NSDictionary *)dictionaryWithJsonString:(NSString *)jsonString { if (jsonString == nil) { return ...

  5. node.js安装以及相关配置

    安装: 首先需要进行安装.关于如何安装Node.js,这里就不赘述了,可以直接参考官方的安装指南.安装到指定盘后(以下内容以D盘为例),就开始进行相关配置. 配置: 首先配置环境变量:我的电脑--&g ...

  6. hadoop生态圈安装详解(hadoop+zookeeper+hbase+pig+hive)

    -------------------------------------------------------------------* 目录 * I   hadoop分布式安装   * II zoo ...

  7. putty修改编码

    在窗口标题上点击右键,选择 Change Settings... 在打开的配置窗口左边选择 Appearance,在右边点 Font settings 里面的 Change 按钮,选择好中文字体,比如 ...

  8. html5 Canvas处理图像 实例讲解

    最近在学习canvas,canvas有很强大的图像处理功能,下面写一个我的学习总结: canvas常用功能: 1. 绘制矩形.圆形.曲线.组合图形 2. 绘制文本 3.绘制渐变.变形的图形 4. 图片 ...

  9. codeforces 702E Analysis of Pathes in Functional Graph 倍增

    题目链接 给一个图, 然后给出每条边的权值和一个k值. 让你求出从每个点出发, 走k次能获得的边权的和以及边权的最小值. 用倍增的思想, 求出每个点走一次能到达的点, 权值和以及最小值, 走两次..四 ...

  10. 离线使用nuget

    先新建一个项目,将所有想保存下来或者要升级的package先安装或升级. 然后在项目中将packages文件夹全部拷贝出来,专门放到一个目录备用,以后的项目就可以根据此packages文件夹来离线使用 ...