OC 字符串使用

本文全面介绍了在Objective-C中创建、操作和比较字符串的方法,包括初始化字符串、格式化、子串操作、文件读写、字符串比较等核心功能,适合Objective-C初学者和进阶开发者参考。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、创建常量字符串

NSString *astring = @"This is a String!";

 

 2、创建空字符串,再给予赋值

NSString *astring = [[NSString alloc] init];

 astring = @"This is a String!";

 [astring release];

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

 

NSString *astring = [[NSString alloc] init];

 NSLog(@"0x%.8x", astring);

 astring=@"This is a String!";

 NSLog(@"0x%.8x", astring);

 [astring release];

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

 

 3、用initWithString方法提升速度:

NSString *astring = [[NSString alloc] initWithString:@"This is a String!"];

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

 [astring release];

 

4、用标准c创建字符串:initWithCString方法

char *Cstring = "This is a String!";

 NSString *astring = [[NSString alloc] initWithCString:Cstring];

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

 [astring release];

 

 5、创建格式化字符串:占位符(由一个%加一个字符组成)

int i = 1;

int j = 2;

NSString *astring = [[NSString alloc] initWithString:[NSString stringWithFormat:@"%d.This is %i string!",i,j]];

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

 [astring release];

 

 6、创建临时字符串

NSString *astring;

astring = [NSString stringWithCString:"This is a temporary string"];

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

 

7、从文件创建字符串

NSString *path = [[NSBundlemainBundle] pathForResource:@"astring.text"ofType:nil];

NSString *astring = [[NSString alloc] initWithContentsOfFile:path];

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

[astring release];

 

 8、用字符串创建字符串,并写入到文件  

NSString *astring = [[NSString alloc] initWithString:@"This is a String!"];

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

NSString *path = @"astring.text";    

[astring writeToFile: path atomically: YES];

[astring release];  

注:此路径path只只是示意,真实路径并非如此

 

9、用C比较:strcmp函数

char string1[] = "string!";

 char string2[] = "string!";

 if(strcmp(string1, string2) == 0)

{

     NSLog(@"1");

 }

 

10、isEqualToString方法    

复制代码

NSString *astring01 = @"This is a String!";

 NSString *astring02 = @"This is a String!";

 BOOL result = [astring01 isEqualToString:astring02];

 NSLog(@"result:%d",result);

 

11、考虑大小写比较2个字符串

void compareString() {  

      NSComparisonResult result = [@"bmn" compare:@"azz"];

      if (result == NSOrderedSame) {

              NSLog(@"左 == 右");

      }else if (result == NSOrderedDescending) {

             NSLog(@"左 > 右");

     }else if (result == NSOrderedAscending) {

             NSLog(@"左 <</span> 右");

    }

}

 12、不考虑大小写比较字符串

void compareString() {  

    NSComparisonResult caseInsenresult = [@"dffA" caseInsensitiveCompare:@"dffa"];

    if (caseInsenresult == NSOrderedSame) {

             NSLog(@"左 == 右");

    }else if (caseInsenresult == NSOrderedDescending) {

           NSLog(@"左 > 右");

   }else if (caseInsenresult == NSOrderedAscending) {

           NSLog(@"左 <</span> 右");

     }

}

 

13、输出大写或者小写字符串

NSString *string1 = @"A String"; 

NSString *string2 = @"String"; 

NSLog(@"string1:%@",[string1 uppercaseString]);//大写

NSLog(@"string2:%@",[string2 lowercaseString]);//小写

NSLog(@"string2:%@",[string2 capitalizedString]);//首字母大小

 

14、rangeOfString查找字符串中是否包含其它字符串

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

 NSString *string2 = @"string";

 NSRange range = [string1 rangeOfString:string2];

 int location = range.location;

 int leight = range.length;

 NSString *astring = [[NSString alloc] initWithString:[NSString stringWithFormat:@"Location:%i,Leight:%i",location,leight]];

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

if (range.location == NSNotFound) {

        NSLog(@"str中没有找到 567");

    }else {

        NSLog(@"搜索范围 %@",NSStringFromRange(range));

    }

    // 或者

//    if (range.length == 0 ) {

//        NSLog(@"str中没有找到 567");

//    }

[astring release];

 

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

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

 NSString *string2 = [string1 substringToIndex:3];

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

 

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

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

 NSString *string2 = [string1 substringFromIndex:3];

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

 

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

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

 NSString *string2 = [string1 substringWithRange:NSMakeRange(0, 4)];

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

 

18、stringWithCapacity: 按照固定长度生成空字符串

NSMutableString *String;

 String = [NSMutableString stringWithCapacity:40];

 

19、-appendString与-appendFormatm  把一个字符串接在另一个字符串的末尾

NSMutableString *String1 = [[NSMutableString alloc] initWithString:@"This is a NSMutableString"];

[String1 appendString:@", I will be adding some character"];

[String1 appendFormat:[NSString stringWithFormat:@", I will be adding some character"]];

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

 

20、insertString: atIndex 在指定位置插入字符串

NSMutableString *String1 = [[NSMutableString alloc] initWithString:@"This is a NSMutableString"];

[String1 insertString:@"Hi! " atIndex:0];

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

21、-setString: 

 

NSMutableString *String1 = [[NSMutableString alloc] initWithString:@"This is a NSMutableString"];

[String1 setString:@"Hello Word!"];

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

 

22、replaceCharactersInRange: withString   用指定字符串替换字符串中某指定位置、长度的字符串

NSMutableString *String1 = [[NSMutableString alloc] initWithString:@"This is a NSMutableString"];

[String1 replaceCharactersInRange:NSMakeRange(0, 4) withString:@"That"];

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

 

23、hasPrefix  检查字符串是否以另一个字符串开头

NSString *String1 = @"NSStringInformation.txt";

[String1 hasPrefix:@"NSString"] = = 1 ?  NSLog(@"YES") : NSLog(@"NO");

[String1 hasSuffix:@".txt"] = = 1 ?  NSLog(@"YES") : NSLog(@"NO");

 

24、扩展路径

NSString *Path = @"~/NSData.txt";

NSString *absolutePath = [Path stringByExpandingTildeInPath];

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

NSLog(@"Path:%@",[absolutePath stringByAbbreviatingWithTildeInPath]);

 

25、取文件扩展名

NSString *Path = @"~/NSData.txt";

NSLog(@"Extension:%@",[Path pathExtension]);   

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值