OC NSString(字符串)


多行文字字面量

NSString * string = @"abC"
@"DEF"
@"hjk"
@"uuiop";

NSRange的使用

typedef struct _NSRange {
NSUInteger location;
NSUInteger length;
} NSRange; //定义:
NSRange range = {2,2};
//使用:
NSString * newString = [string substringWithRange:range];

常用方法

在A字符串中查找B字符串,返回B字符串在A中的位置

- (NSRange)rangeOfString:(NSString *)searchString;

//举例:
NSRange range = [string rangeOfString:@"gs"]; if (range.length == 0) {
NSLog(@"没有找到liu");
}
if (range.location == NSNotFound) {
NSLog(@"没有找到liu");
}

NSCaseInsensitiveSearch 忽略大小写

[string rangeOfString:@"ha" options:NSCaseInsensitiveSearch]

不可变字符串常用方法

带占位符的拼接字符串方法 stringByAppendingFormat

NSString * newString = [string stringByAppendingFormat:@"def%d",12];

拼接字符串方法 stringByAppendingString

NSString * newString = [string stringByAppendingString:@"opiuuoo"];

填充字符串 stringByPaddingToLength: withString: startingAtIndex:

NSString * newstring = [string stringByPaddingToLength:10 withString:@"123" startingAtIndex:2];

分割字符串 componentsSeparatedByString

NSArray * array = [string componentsSeparatedByString:@"-"];

通过数组合并字符串 componentsJoinedByString

NSString * string = [array componentsJoinedByString:@"-"];

给字符串前后去空格 stringByTrimmingCharactersInSet

NSString * string = [string stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceCharacterSet]];

替换字符串 stringByReplacingOccurrencesOfString

NSString * newString = [string stringByReplacingOccurrencesOfString:@"hu" withString:@" "];

根据range替换字符串 stringByReplacingCharactersInRange:

		NSRange range = {4,4};
string = [string stringByReplacingCharactersInRange:range withString:@"shifan"];

大写字母转小写 lowercaseString

NSString * newString2 = [string2 lowercaseString];

小写字母转大写 uppercaseString

NSString * newString1 = [string1 uppercaseString];

首字母大写 capitalizedString

NSString * newString2 = [string2 capitalizedString];

字符串比较函数 compare:

NSComparisonResult rs = [string1 compare:string2];

忽略大小比较字符串 caseInsensitiveCompare:

NSComparisonResult rs = [string1 caseInsensitiveCompare:string2];

if (rs == NSOrderedAscending) {
NSLog(@"string1 < string2");
} else if (rs == NSOrderedSame) {
NSLog(@"string1 = string2");
} else {
NSLog(@"string1 > string2");
}

字符串转基本数据类型

int num = [string intValue];
double numd = [string doubleValue];
//还有: floatValue,integerValue,longLongValue,boolValue

可变字符串NSMutableString

初始化方法

NSMutableString * string = [[NSMutableString alloc] initWithCapacity:5];
NSMutableString * s = [[NSMutableString alloc] initWithString:@"ab"];

追加方法

[s appendFormat:@"%d",1];
[s appendString:@"123"];

插入方法

[string insertString:@"90" atIndex:2];

替换方法

[string replaceCharactersInRange:range withString:@"jj"];

删除方法

[string deleteCharactersInRange:range];

不可变字符串转可变字符串(重置字符串)

[string setString:str];

OC NSString(字符串)的更多相关文章

  1. iOS - OC NSString 字符串

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

  2. OC之字符串 NSString与NSMutableString

    一.NSString 不可变字符串的操作1)将字符串常量对象直接赋值给字符串引用 NSString *str1=@"hello"; 字符串对象的输出格式:NSLog(@" ...

  3. OC基础--字符串

    前言 做iOS开发有3年了,从当初的小白到现在,断断续续看过很多资料,之前也写过一些博文来记录,但是感觉知识点都比较凌乱.所以最近准备抽时间把iOS开发的相关知识进行一个梳理,主要分为OC基础.UI控 ...

  4. NSString字符串

    要把 “2011-11-29” 改写成 “2011/11/29”一开始想用ios的时间格式,后来用NSString的方法搞定. [string stringByReplacingOccurrences ...

  5. OC之从键盘输入NSString字符串

    方法一: char *a; static char z; a = &z; gets(a); NSString *intput = [NSString stringWithUTF8String: ...

  6. iOS学习13之OC NSString类

    C语言中,字符串是有char(ASC||码)字符组成. OC中,字符串是由unichar(Unicode)字符组成. 1.字符串(NSString) NSString:不可变字符串,即:创建以后,内容 ...

  7. NSString字符串类型-学习总结

    1.字符串的创建 (1)创建常量字符串 NSString *str = @"This is a String"; //str是变量名 (2)创建空的字符串,给字符串赋值 NSStr ...

  8. NSString 字符串

    0.字符串常用操作 自动补充方法:当字符串长度不够需要自动补充到一定的位数 OC字符串与C语言字符串之间的相互转换 1.不可变字符串的创建 // 直接创建不可变字符串 /* 在 OC 中,使用 @&q ...

  9. 【去除NSString 字符串中的空格换行符】

    @interface NSString (DeletWhiteSpace) // 返回一个去掉前后空格的字符串或者下划线,如果自己是一个nil 返回@“” - (NSString *)trimming ...

随机推荐

  1. C#抽象类

    抽象类使用abstract修饰符声明: 不能创建抽象类的实例: 抽象类只能用作其他类的基类: 抽象类中可以包含抽象成员和普通的非抽象成员: 抽象类自己可以派生自另外一个抽象类: 任何派生自抽象类的[类 ...

  2. Winform防止程序重复运行

    需求:1.点击“关闭”按钮时,程序最小化到托盘,并没有退出,这时再次运行程序,不会重复运行,而是显示已运行的程序:2.支持不同目录:3.支持修改名称. 代码(不支持修改名称,不支持不同目录): usi ...

  3. C#根据网址生成静态页面

    HoverTree开源项目中HoverTreeWeb.HVTPanel的Index.aspx文件 是后台管理的首页. 包含生成留言板首页,以及显示用户名,退出等功能. 根据网址生成页面的方法: boo ...

  4. asp.net后台注册js的四种方法

    1. 用Response.Write方法 代码如下: Response.Write("<script type='text/javascript'>alert("kel ...

  5. WebApp简单制作(后端也可以装逼啦)

    前端越来越吃香的感觉 年后回来,跟之前和几个同事和朋友聊天,发现有两个.net的和一个php的朋友都转到了前端,真是出乎意料.自从之前的webapp兴起后,前端感觉比后端吃香很多,总结朋友们转的原因, ...

  6. android 中layer-list的用法

    1.可以将多个图片按照顺序层叠起来 2.在drawable下建立一个xml文件 <layer-list xmlns:android="http://schemas.android.co ...

  7. c#通过oledb获取excel文件表结构信息

    这个问题来自论坛提问,同理可以获得access等数据库的表结构信息. using System; namespace ConsoleApplication11 { class Program { pu ...

  8. 【Java每日一题】20161129

    package Nov2016; public class Ques1129 { public static void main(String[] args) { final String str = ...

  9. coreseek (sphinx)+ Mysql + Thinkphp搭建中文搜索引擎详解

      一, 前言    1,研究coreseek的动机 我有一个自己的笔记博客,经常在上面做一些技术文章分析.在查询一些文章的时候,以前只能将要查询的内容去mysql中用like模糊匹配.在文章多了的情 ...

  10. cnodejs社区论坛2--注册