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. 【收藏】十大Webserver漏洞扫描工具

    如今有很多消息令我们感到Web的危急性,因此,当前怎样构建一个安全的Web环境成为网管员和安全管理员们义不容辞的责任.可是巧妇难为无米之炊,该选择哪些安全工具呢? 扫描程序能够在帮助造我们造就安全的W ...

  2. Asp.Net(C#) MD5 加密

    /// <summary> /// MD5 字符串加密  /// </summary> /// <param name="str">需要加密的字 ...

  3. 《编写可维护的JavaScript》之编程实践

    最近读完<编写可维护的JavaScript>,让我受益匪浅,它指明了编码过程中,需要注意的方方面面,在团队协作中特别有用,可维护性是一个非常大的话题,这本书是一个不错的起点. 本书虽短,却 ...

  4. UVA 1622 Robot

    题意: 给出n*m个格子,每个格子里有一个机器人,可以执行东南西北四种指令,但是移动出格就会爆炸.给出四种指令的个数,求最多完成多少次指令. 分析: 首先对输入数据进行处理,使得cw≥ce.cn≥cs ...

  5. elegant 的长整数加法 string 实现

    string strAdd(string &v1, string &v2){ string res = ""; ; int len1 = v1.size(), le ...

  6. PHP zip压缩文件及解压

    PHP zip压缩文件及解压 利用ZipArchive 类实现 只有有函数.界面大家自己写 ZipArchive(PHP 5.3 + 已自带不需要安装dll) /** * 文件解压 * @param ...

  7. eclipse 改包名

    转载自: http://www.2cto.com/kf/201304/206747.html 1.在项目上右键,选择android tools->rename application packa ...

  8. Delphi 进阶基础技能说明

    以下讨论均基于Delphi XE8,主要是利用DELPHI新版的功能,如:Unicode,泛型,匿名函数等[XE2 后应该都支持]. 用新特性的好处是少写代码,提高效率.本博客不再讨论Delphi旧版 ...

  9. logstash indexer和shipper的配置

    [elk@zjtest7-frontend config]$ cat logstash_agent.conf input { file { type => "zj_nginx_acce ...

  10. linux下主要是VirtualBox及GuestAdditions的安装

    Linux版本的VirtualBox下载:http://www.virtualbox.org/wiki/Linux_Downloads.请下载对应的版本. RedHat.RHEL:rpm -i vh ...