分享好友 编程语言首页 频道列表

Objective-C NSString 操作

Objective-C  2023-02-08 21:330

 

 

静态字符串 NSString

NSString *hello = @"hello"; // 声明

NSString *append = [hello stringByAppendingString:@"world!"]; // 追加

NSString *format = [NSString stringWithFormat:@"1 + 1 = %i", 2]; // 格式化

NSString *helloStr = [[NSString alloc] initWithString:@"hello world"]; //分配内存并初始化

 

字符串比较

bool b = [hello isEqualToString:helloStr]; // 字符串比较

NSString *braceStr = @"{hahahaha}";

if ([braceStr hasPrefix:@"{"] && [braceStr hasSuffix:"}"]) { // 查找字符串头尾是否分别包含{}

    NSLog(@"string %@ has two brace", braceStr);

}

 

字符串转换

// 字符串转数字

NSString *ss = @"123";

int a = [ss intValue] + 13; // 字符串转int

double dd = [ss doubleValue] + 33.3; // 字符串转double

NSLog(@"%g", dd);

// 字符串转数组

NSString *string = @"one,two,three,four";

NSArray *array = [string componentsSeparatedByString:@","]; // 通过逗号分隔字符串转化为数组

NSLog(@"array:%@", array); // 输出整个数组中所有元素

NSString *value = [array objectAtIndex:0]; // 取出第0个元素

NSLog(@"value:%@", value);

// 数组转字符串

NSString *str = [array componentsJoinedByString:@","];

NSLog(@"str:%@", str);

 

截取子串

//-substringToIndex: 从字符串的开头一直截取到指定的位置,但不包括该位置的字符

NSString *string = @"This is a string";

NSString *subString= [string substringToIndex:10];

//-substringFromIndex: 以指定位置开始(包括指定位置的字符),并包括之后的全部字符

NSString *string = @"This is a string";

NSString *subString = [string substringFromIndex:3];

//-substringWithRange: //按照所给出的位置,长度,任意地从字符串中截取子串

NSString *string = @"This is a string";

NSString *subString = [string substringWithRange:NSMakeRange(0, 4)];

 

动态字符串 NSMutableString

NSMutableString *mstr = [[NSMutableString alloc] init];

NSString *str = @"This is a example.";

mstr = [NSMutableString stringWithString:str1]; // 创建可变字符串

[mstr insertString:@"very easy " atIndex:10]; // 插入字符

[mstr deleteCharactersInRange:NSMakeRange(10,5)]; // 删除一些字符

 

查找子串并删除

NSRange substr = [mstr rangeOfString:@"example"]; // 字符串查找,可以判断字符串中是否有

if (substr.location != NSNotFound) {

    [mstr deleteCharactersInRange:substr] ;// 字符串删除

}

// 重新设置字符串

[mstr setString:@"This is string AAA"];

 

// 替换字符串

[mstr replaceCharactersInRange:NSMakeRange(15, 2) withString:@"BBB"]; //从第15个字符串处替换掉后2个字符串

 

// 查找第一个并替换

NSString *search = @"This is";

NSString *replace = @"An example of";

substr = [mstr rangeOfString:search];

if (substr.location != NSNotFound) {

[mstr replaceCharactersInRange:substr withString:replace]; //把第1个遇到的substr替换为replace

    NSLog(@"%@",mstr);

}

 

//查找全部匹配的,并替换

search = @"a";

replace = @"X";

substr = [mstr rangeOfString:search];

while (substr.location != NSNotFound) {

[mstr replaceCharactersInRange:substr withString:replace];

    substr = [mstr rangeOfString:search];

}

NSLog(@"%@",mstr);

 

常见的NSString方法

+idstringWithContentsOfFile:path encoding:enc error:err 创建一个新字符串并将其设置为path指定的文件的内容,使用字符编码enc,如果非零,则返回err中的错误。

+idstringWithContentsOfURL:url encoding:enc error:err 创建一个新字符串,并将其设置为url的内容,使用字符编码enc,如果非零,则返回err中的错误。

+idstring 创建一个新的空字符串。

+idstringWithString:nsstring 创建一个新字符串,并将其设置为nsstring

-(id)initWithString:nsstring 将新分配的字符串设置为nsstring

-idinitWithContentsOfFile:path encoding:enc error:err

将字符串设置为path指定的文件的内容

- (id initWithContentsOfURL:url encoding;enc error:err

将字符串设置为url(NSURL*)url的内容,使用字符编码enc,如果非零,则返回err中的错误。

- (UNSIgned int)lengtn 返回字符串中字符数目

(unichar) characterAtIndex:i 返回索引iUnicode字符

(NSString*) substringFromIndex:i 返回从i开始直到结尾的字符串

(NSString*) substringToIndex:i 返回从该字符串开始位置到索引i的子字符串

(NSComparator *)caseInsensitiveCompare:nsstring 比较两个字符串,忽略大小写

(NSComparator *)compare:nsstring 比较两个字符串

(BOOLhasPrefix:nsstring 测试字符串是否以nsstring开始

(BOOLisEqualToString:nsstring 测试两个字符串是否相等。

(NSString*capitalizedString 返回每个单词首字母大写的字符串(每个单词的其余字母转换为小写)

(NSString *lowercaseString 返回转换为小写的字符串

(NSString *uppercaseString 返回抓换为大写的字符串

(const char *)UTF8String 返回转换为UTF8字符串的字符串

(double) doubleValue 返回转换为NSInteger整数的字符串

(intintValue 返回转换为整数的字符串

 

常见的NSMutableString方法

(id) stringWithCapacity:size 创建一个字符串,初始包含size的字符

(id) initWithCapacity:size 使用初始容量为size的字符来初始化字符串

(void)setString :nsstring 将字符串设置为nsstring

(void) appendString:nsstring 在接受者的末尾附加nsstring

- (void)deleteCharactersInrange:range 删除指定range中的字符

- (void)insertString:nsstring atIndex:i以索引i为起始位置插入nsstring

- (void) replaceCharactersInrange: range withString:nsstring 使用nsstring替换range指定的字符

- (void)replaceOccurrencesOf String:nsstring withString:nsstring2 options:opts range:range

根据选项opts,使用指定range中的nsstring2替换所有的nsstring。选项可以包括NSBackwardsSearch(从范围的结尾开始搜索),NSAn冲热点Searchnsstring必须匹配范围的开始),NSLiteralSearch

查看更多关于【Objective-C】的文章

展开全文
相关推荐
反对 0
举报 0
评论 0
图文资讯
热门推荐
优选好物
更多热点专题
更多推荐文章
《黑马程序员》 category分类的使用(Objective - c语法)
分类的作用:在不改变原来类的基础上,可以给类增加一些方法。使用注意 : ①  分类只能增加方法,不可以增加成员变量                ②  分类的方法在实现中可以访问成员变量,不过成员变量必须手动实现。               

0评论2023-03-16482

Objective-C Runtime(转)
博主地址: http://yulingtianxia.com/blog/2014/11/05/objective-c-runtime/曾经觉得Objc特别方便上手,面对着 Cocoa 中大量 API,只知道简单的查文档和调用。还记得初学 Objective-C 时把[receiver message]当成简单的方法调用,而无视了“发送消息”这句话

0评论2023-03-08434

Objective-C利用协议实现回调函数
实现一个显示文字为测试的视图,然后经过3秒钟测试文字变为回调函数文字。相应的截图如下:  实现的代码如下:定义协议:#import UIKit/UIKit.h @protocol NoteDelegate //回调函数 -(void)messageCallBack:(NSString *)string; @end 调用协议:#impor

0评论2023-02-10480

刨根问底Objective-C Runtime(1)- Self & Super
  刨根问底Objective-C Runtime(1)- SelfSuper - Chun Tips专注iOS开发 刨根问底Objective-C Runtime(1)- SelfSuper前言关于Objective-C Runtime一篇好的文档 : Understanding the Objective-C Runtime译文地址为: http://blog.cocoabit.com/blog/2

0评论2023-02-10566

Objective-C利用协议实现回调函数
实现一个显示文字为测试的视图,然后经过3秒钟测试文字变为回调函数文字。相应的截图如下: 实现的代码如下:定义协议:#import UIKit/UIKit.h @protocol NoteDelegate//回调函数-(void)messageCallBack:(NSString *)string;@end  调用协议:#import Founda

0评论2023-02-10750

Objective-c开发中混合使用ARC
首选“Compile Sources”的位置:选中工程-TARGETS-相应的target然后选中右侧的“Build Phases”,向下就找到“Compile Sources”了。如何在未使用arc的工程中引入一个使用了arc特性的文件:对相应的文件添加:-fobjc-arc参数如何在arc工程中引用未使用arc的文件

0评论2023-02-10774

Objective C运行时(runtime)技术总结,好强大的runtime
前言:         Objective C的runtime技术功能非常强大,能够在运行时获取并修改类的各种信息,包括获取方法列表、属性列表、变量列表,修改方法、属性,增加方法,属性等等,本文对相关的几个要点做了一个小结。目录:(1)使用class_replaceMethod/cla

0评论2023-02-09994

Programming With Objective-C---- Introduction ---- Objective-C 学习(一)
a:link { color: rgba(88, 114, 210, 1); text-decoration: none }a:visited { color: rgba(88, 114, 210, 1); text-decoration: none }a:hover { color: rgba(173, 189, 248, 1); text-decoration: none }a:active { color: rgba(0, 0, 255, 1); text-decora

0评论2023-02-09863

设计模式之开放-封闭原则(引申出Objective-C中继承、Category、Protocol三者的区别,这点面试常问)
开放封闭原则(OCP原则The Open-Closed Principle)是面向对象的核心设计所在。它是说,软件开发实体(类、模块、函数等)应该可以扩展,但是不能修改。这个原则有两个特征,一个是说“对于扩展是开放的”,另一个是说“对于更改是封闭的”。我们在编写任何ap

0评论2023-02-09395

Singletons in Objective-C
BackgroundSingletons classes are an important concept to understand because they exhibit an extremtely useful design pattern.This idea is used throughout the iPhone SDK, for example, UIApplication has a method called sharedApplication which

0评论2023-02-09522

Objective-C运行时编程 - 实现自动化description方法的思路及代码示例
发布自米高 | Michael - 博客园,源地址:http://www.cnblogs.com/michaellfx/p/4232205.html,转载请注明。基础实现性能优化参考关键字:Objective-COCdescription函数自动打印属性及属性值运行时枚举成员变量基础实现使用NSLog或po,Xcode默认调用对象的des

0评论2023-02-09866

Objective-C 学习笔记 - part 11 - 错误处理
Object-C 提供类似 Java / C++风格的错误处理模型,当使用 -fobjc-exceptions 开关(gcc3.3)时,它可以工作,但是只限于 OS X v10.3 以后的版本,之前的版本并不提供这一支持。使用错误捕获的原则与其它语言类似:你不能用它来当作正常的处理流的判断条件

0评论2023-02-09893

objective-c 字符串基本操作
1.定义一个字符串a, 截取a 的某一个部分,复制给b, b必须是int型NSString *a = @"1.2.30"; int b= [[a substringWithRange:NSMakeRange(4,2)] intValue]; NSLog(@"a:%@n",a); NSLog(@"b:%d",b); 解析如下:substringWithRange: 专门截取字符串的一块肉NSMakeR

0评论2023-02-09602

Objective-C 程序设计(第六版)第十一章习题答案
1. 1 #import "Fraction.h" 23 @interface Fraction (MathOps) 45 - (Fraction *) add: (Fraction *) f; 67 - (Fraction *) mul: (Fraction *) f; 89 - (Fraction *) sub: (Fraction *) f;10 11 - (Fraction *) div: (Fraction *) f;12 13 - (Fraction *) inv

0评论2023-02-09476

Objective-C与C style语言的简单类比
1. 关于Objc中函数调用类比[_lblHelloWorld setHidden:![_lblHelloWorld isHidden]];类比为: _lblHelloWorld.setHidden(!(_lblHelloWorld.isHidden()));Tip: objc中的boolean值为YES和NO,而不是True or False  -(void) helloWorld:(BOOL)isHelloWorld{}

0评论2023-02-09682

Objective-C中.h文件、.m文件中@interface、@synthesize及其它
很多开发iOS好几年的老鸟,可能都不太分的清.h文件和.m文件里各种结构的用途和区别。最近仔细研究了一下,写一篇文章记下来。 一般的,写一个Class的时候,经常是这种格式(以UIViewController为例):.h文件:@interface ClassName{NSString* _value1;}@pro

0评论2023-02-09878

更多推荐