iOS - 字符串(NSString)

/*________________________NSString(不可变字符串)________________________*/

//________________________1.字符串的创建___________________________________//

//创建字符串常量

NSString *string1 = @"Hello";  //内容不变

string1 = @"Hello world";

//创建字符串

NSString *string2 = [[NSString alloc] initWithString:@"Hello"];  //string2 = hello

NSString *string3 = [[NSString alloc] initWithFormat:@"Hello %@",string2]; //string3 = hello hello

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

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

//initWithFormat可以放占位符(格式化符)。有拼接功能(字符串,包括基本数据类型)

//initWtihformat用途示例:

//例如:查询到某一结果,将所有结果拼接后输出

NSString *s1 = @"zhangsan";

NSString *s2 = @"lisi";

NSString *s3 = @"wangwu";

//拼接字符串

NSString *string4 = [NSString stringWithFormat:@"%@,%@,%@",s1,s2,s3];

NSLog(@"%@",string4);

//基本数据类型也可以拼接(initWithFormat)

int age =24;

NSString *string5 = [[NSString alloc] initWithFormat:@"%@的年龄:%d",s1,age];

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

//________________________2.字符串的比较______________________________________

NSString *string6 = @"abck";

NSString *string7 = @"88888";

//一下比较两个指针地址是否相同,而不是比较字符串中的内容

// if (string6 == string7 )

//* isEqualToString 比较两个字符串中的内容是否相同。(区分大小写)

if ([string6 isEqualToString:string7]) {

NSLog(@"string6与string7内容相同");

}

NSString *string8 = @"abc";

NSString *string9 = @"abc";

if (string8 == string9) {

NSLog(@"string8 = string9");     //YES

}

//对比以下

NSString *string10 = [[NSString alloc] initWithFormat:@"abc%@",@"def"];

NSString *string11 = [[NSString alloc] initWithFormat:@"abc%@",@"def"];

if (string10 == string11) {

NSLog(@"string10 = string11");     //NO

}

if ([string10 isEqualTo: string11]) {

NSLog(@"string10,string11内容相同");    //YES

}

NSString *string12 = [[NSString alloc] initWithString:@"abc"];

NSString *string13 = [[NSString alloc] initWithString:@"abc"];

if (string12 == string13) {

NSLog(@"string12 = string13");          //YES reason:iniWithString不是在堆区上创建的,而是在常量区创建

}

/*

1.initWithString不是在堆区上创建的,而是在常量区创建(此未编译器的优化)

2.iniWithFormat:在堆区创建。

*/

//__________________字符串忽略大小写比较caxeInsensitiveCompare______________

//比较大小

NSString *string14 = @"zhangsan";

NSString *string15 = @"ZHANGSAN";

//caseInsensitiveCompare忽略大小写比较

//typedef NS_ENUM(NSInteger, NSComparisonResult) {NSOrderedAscending = -1L, NSOrderedSame, NSOrderedDescending};

//- (NSComparisonResult)caseInsensitiveCompare:(NSString *)string;

NSComparisonResult result = [string14 caseInsensitiveCompare:string15];

if (result == NSOrderedSame) {

NSLog(@"string14,string15忽略大小写比较相同");

}

NSString *string16 = @"a";

NSString *string17 = @"b";

NSComparisonResult result2 = [string16 compare:string17];

if (result2 == NSOrderedAscending) {

NSLog(@"string16 < string17");

} else if (result2 == NSOrderedSame){

NSLog(@"string16 = string17");

} else if (result2 == NSOrderedSame) {

NSLog(@"string16 > string 17");

}

//_________________3.字符串的其他用法________________

//3.1length:获取字符串的长度

NSString *string18 = @"abcdef"; //@"中文"(长度为2)

NSInteger len = [string18 length];

NSLog(@"leng= %ld",len);

//3.2转大小,写

NSString *string19 = @"hElllo";

//uppercaseString:将字符串中的字母全都转成大写

NSLog(@"upper:%@",[string19 uppercaseString]);

//转小写

NSLog(@"lower:%@",[string19 lowercaseString]);

//首字母大写

NSLog(@"capitalizedString:%@",[string19 capitalizedString]);

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

NSString *string20 = @"3.14";

//错误:强转不能改变对象本身

//    float f2 = (float) string20;  //错误提示:Pointer cannot be cast be cast to type ‘float‘

float f = [string20 floatValue];

NSLog(@"floatValue:%f",f);

NSString *string21 = @"1";

bool b = [string21 boolValue];  //true

NSLog(@"%i",b);

//3.4 字符串的截取(***)

NSString *string22 = @"abcdef";

//substringToIndex:从字符串的开始位置截取到指定位置(不包含指定位置的字符0

NSString *substring1 = [string22 substringToIndex:3];

NSLog(@"subtirng1 = %@",substring1);

//substirngFromIndex:从指定位置截取到字符串的末尾(包含制定位置的字符)

NSString *substring2 = [string22 substringFromIndex:1];

NSLog(@"subtirng2 = %@",substring2);

NSRange rang = {1,4};

//    NSRange rang = NSMakeRange(1, 4);  //等小于 NSRange rang = {1,4};

NSString *substring3 = [string22 substringWithRange:rang];

NSLog(@"sustirng3 = %@",substring3);

//3.5 字符串的追加

NSString *string23 = @"Android";

//在字符串string23后面追加@" ios"

NSString *string24 = [string23 stringByAppendingString:@" ios"];

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

NSString *string25 = [string23 stringByAppendingFormat:@" %@%d",@"ios",7];

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

//3.6 字符串的查找rangeOfString

NSString *string26 = @"www.iphonetrain.com/ios.html";

NSRange rg = [string26 rangeOfString:@"ios"];

//存在没有要查找的字符串问题

//NSNotFound相关定义:enum {NSNotFound = NSIntegerMax};#define NSIntegerMax    LONG_MAX

if(rg.length != NSNotFound) {

NSLog(@"location:%ld,length:%ld",rg.location,rg.length);

}

时间: 2024-10-25 03:59:03

iOS - 字符串(NSString)的相关文章

iOS 字符串nsstring

//将NSData转化为NSString        NSString* str = [[NSString alloc] initWithData:response encoding:NSUTF8StringEncoding];//将NSString 转化为NSData (NSString.h)- (NSData *)dataUsingEncoding:(NSStringEncoding)encoding; //载一个字符串中删除一个字符或字符串[_display deleteCharacte

iOS字符串NSString中去掉空格(或替换为某个字符串)

http://blog.sina.com.cn/s/blog_6f29e81f0101qwbk.html [问题描述] 今天请求服务器返回的字段中含有空格,这空格是服务器开发人员不小心往数据中多敲了,所以在客户端需要把字符串中的空格过滤掉. [问题分析] 1.使用NSString中的stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceCharacterSet]]方法只是去掉左右两边的空格: 2.使用NSString *strUrl

iOS开发--字典(NSDictionary)和JSON字符串(NSString)之间互转

1. 字典转Json字符串 + (NSString*)convertToJSONData:(id)infoDict { NSError *error; NSData *jsonData = [NSJSONSerialization dataWithJSONObject:infoDict options:NSJSONWritingPrettyPrinted // Pass 0 if you don't care about the readability of the generated stri

IOS开发NSString与int和float的相互转换以及字符串拼接

一.NSString与int和float的相互转换 NSString *tempA = @"123"; NSString *tempB = @"456"; 1.字符串拼接 NSString *newString = [NSString stringWithFormat:@"%@%@",tempA,tempB]; 2.字符转int int intString = [newString intValue]; 3.int转字符 NSString *st

IOS中NSString的常见用法

iOS NSString的常用用法 //1.创建常量字符串. NSString *astring = @"This is a String!"; //2.创建空字符串,给予赋值. NSString *astring = [[NSString alloc] init]; astring = @"This is a String!"; //3.在以上方法中,提升速度:initWithString方法 NSString *astring = [[NSString allo

iOS字符串

//将NSData转化为NSString        NSString* str = [[NSString alloc] initWithData:response encoding:NSUTF8StringEncoding];//将NSString 转化为NSData (NSString.h)- (NSData *)dataUsingEncoding:(NSStringEncoding)encoding; //载一个字符串中删除一个字符或字符串[_display deleteCharacte

OC之字符串 NSString与NSMutableString

一.NSString 不可变字符串的操作1)将字符串常量对象直接赋值给字符串引用 NSString *[email protected]"hello"; 字符串对象的输出格式:NSLog(@"str1=%@",str1). 2)initWithString可将OC中的字符串对象构建字符串引用  NSString *str2=[[NSString alloc]initWithString:str1]; . 3)initWithUTF8String可将C语言的字符串创建

iOS 字符串转码+解压

最近遇到这样的一个问题,从服务器上返回的字符串是经过压缩的.下面记录下解决方法 // // ViewController.m // 字符串解压缩 // // Created by 杜甲 on 14-5-8. // Copyright (c) 2014年 杜甲. All rights reserved. // #import "ViewController.h" #import "LFCGzipUtillity.h" @interface ViewController

Objective-C: 字符串NSString与NSMutableString

字符串算是OC中非常重要和常用的一部分内容,OC中的字符串与我之前在学习C,C++,Java中的字符串有一定的不同,它非常类似于C++中容器的概念,但用法却与之还是有很大的不同,也许是因为OC的语法就与其他我们常用的编程语言不尽相同.  这里总结一下字符串NSString与NSMutableString. 一. NSString NSString代表字符序列不可变的字符串,NSString的功能非常强大,OC的字符串处理比C语言的饿字符串简单.易用得多. 这里我们通过一个具体的例子来进行分析.