OC之NSString2
2015-08-10 22:36
393 查看
//
// main.m
// 0810OCNSString
//
// Created by weibiao on 15-8-10.
// Copyright (c) 2015年 weibiao. All rights reserved.
//
#import <Foundation/Foundation.h>
//字符串操作
void test1(){
char *str1 = "C string";//这是C语言创建的字符串
NSString *str2 =@"OC string";//Objc字符串需要加@,并且这种方式创建的对象不需要自己释放内存
//下面的创建方法都应该释放内存
NSString *str3 = [[NSString
alloc] init];
str3 =
@"OC string";
NSString *str4 = [[NSString
alloc] initWithString:@"objective-c string"];
NSString *str5 = [[NSString
alloc]
initWithFormat:@"age is %i,name is %.2f",19,1.72f];
NSString *str6 = [[NSString
alloc] initWithUTF8String:"C string"];//c语言的字符串转换为objc字符串
//以上方法都有对应的静态方法(一般以string开头),不需要管理内存(系统静态方法一般都是自动释放)
NSString *str7 = [NSString
stringWithString:@"objective-c string"];
}
void test2(){
NSLog(@"\"hello world!\" to upper is %@",[@"hello world!"
uppercaseString]);//结果:以大写输出
NSLog(@"\"HELLO WORLD!\" to lower is %@",[@"HELLO WORLD!"
lowercaseString]);//小写输出
//首字母大写,其他字母小写
NSLog(@"\"Hello world!\" to capitalize is %@",[@"Hello world!"
capitalizedString]);
BOOL result = [@"abc"
isEqualTo:@"aBc"];
NSLog(@"%i",result);//结果:0
NSComparisonResult result2 = [@"abc"
compare:@"aBc"];//如果是[@"abc" caseInsensitiveCompare:@"aBc"]则忽略大小写比较
if (result2==NSOrderedAscending){
NSLog(@"left<right.");
}
else
if (result2==NSOrderedDescending){
NSLog(@"left>right.");
}
else if (result2==NSOrderedSame){
NSLog(@"left=right.");
}
//结果:left>right.
}
void test3(){
NSLog(@"has prefix ab? %i",[@"abcdef"
hasPrefix:@"ab"]);
//结果:has prefix ab? 1
NSLog(@"has suffix ab? %i",[@"abcdef"
hasSuffix:@"ef"]);
//结果:has suffix ab? 1
NSRange range = [@"abcdefabcdef"
rangeOfString:@"ef"];//注意如果遇到cde则不再往后面搜索,如果从后面搜索或其他搜索方式可以设置第二个options参数
if (range.location ==
NSNotFound){
NSLog(@"not Found");
}else{
NSLog(@"range is %@",NSStringFromRange(range));
}//结果:range is {2,3}
}
//字符串分割
void test4(){
NSLog(@"%@",[@"abcdef"
substringFromIndex:3]);//从第三个索引开始(包括第三个索引对应的字符)截取到最后一位
//结果:def
NSLog(@"%@",[@"abcdef"
substringToIndex:3]);//从0开始截取到第三个索引(不包括第三个索引对应的字符)
//结果:abc
NSLog(@"%@",[@"abcdeg"
substringWithRange:NSMakeRange(2,
3)]);
//结果:cde
NSString *str1 = @"12.abcd.3a";
NSArray *array1 = [str1
componentsSeparatedByString:@"."];//字符串分�
NSLog(@"%@",array1);
// 结果:
// 12,
// abcd,
// 3a
}
//其他操作
void test5(){
NSLog(@"%i",[@"12"
intValue]);//类型转换
//结果:12
NSLog(@"%zi",[@"hello world,世界你好!"
length]);
//结果:17
NSLog(@"%c",[@"abc"
characterAtIndex:0]);
//结果:a
const char *s = [@"abc"
UTF8String];//转换为C语言字符串
NSLog(@"%s",s);
//结果:abc
}
int main(int argc,
const char * argv[]) {
test1();
test2();
test3();
test4();
test5();
return 0;
}
// main.m
// 0810OCNSString
//
// Created by weibiao on 15-8-10.
// Copyright (c) 2015年 weibiao. All rights reserved.
//
#import <Foundation/Foundation.h>
//字符串操作
void test1(){
char *str1 = "C string";//这是C语言创建的字符串
NSString *str2 =@"OC string";//Objc字符串需要加@,并且这种方式创建的对象不需要自己释放内存
//下面的创建方法都应该释放内存
NSString *str3 = [[NSString
alloc] init];
str3 =
@"OC string";
NSString *str4 = [[NSString
alloc] initWithString:@"objective-c string"];
NSString *str5 = [[NSString
alloc]
initWithFormat:@"age is %i,name is %.2f",19,1.72f];
NSString *str6 = [[NSString
alloc] initWithUTF8String:"C string"];//c语言的字符串转换为objc字符串
//以上方法都有对应的静态方法(一般以string开头),不需要管理内存(系统静态方法一般都是自动释放)
NSString *str7 = [NSString
stringWithString:@"objective-c string"];
}
void test2(){
NSLog(@"\"hello world!\" to upper is %@",[@"hello world!"
uppercaseString]);//结果:以大写输出
NSLog(@"\"HELLO WORLD!\" to lower is %@",[@"HELLO WORLD!"
lowercaseString]);//小写输出
//首字母大写,其他字母小写
NSLog(@"\"Hello world!\" to capitalize is %@",[@"Hello world!"
capitalizedString]);
BOOL result = [@"abc"
isEqualTo:@"aBc"];
NSLog(@"%i",result);//结果:0
NSComparisonResult result2 = [@"abc"
compare:@"aBc"];//如果是[@"abc" caseInsensitiveCompare:@"aBc"]则忽略大小写比较
if (result2==NSOrderedAscending){
NSLog(@"left<right.");
}
else
if (result2==NSOrderedDescending){
NSLog(@"left>right.");
}
else if (result2==NSOrderedSame){
NSLog(@"left=right.");
}
//结果:left>right.
}
void test3(){
NSLog(@"has prefix ab? %i",[@"abcdef"
hasPrefix:@"ab"]);
//结果:has prefix ab? 1
NSLog(@"has suffix ab? %i",[@"abcdef"
hasSuffix:@"ef"]);
//结果:has suffix ab? 1
NSRange range = [@"abcdefabcdef"
rangeOfString:@"ef"];//注意如果遇到cde则不再往后面搜索,如果从后面搜索或其他搜索方式可以设置第二个options参数
if (range.location ==
NSNotFound){
NSLog(@"not Found");
}else{
NSLog(@"range is %@",NSStringFromRange(range));
}//结果:range is {2,3}
}
//字符串分割
void test4(){
NSLog(@"%@",[@"abcdef"
substringFromIndex:3]);//从第三个索引开始(包括第三个索引对应的字符)截取到最后一位
//结果:def
NSLog(@"%@",[@"abcdef"
substringToIndex:3]);//从0开始截取到第三个索引(不包括第三个索引对应的字符)
//结果:abc
NSLog(@"%@",[@"abcdeg"
substringWithRange:NSMakeRange(2,
3)]);
//结果:cde
NSString *str1 = @"12.abcd.3a";
NSArray *array1 = [str1
componentsSeparatedByString:@"."];//字符串分�
NSLog(@"%@",array1);
// 结果:
// 12,
// abcd,
// 3a
}
//其他操作
void test5(){
NSLog(@"%i",[@"12"
intValue]);//类型转换
//结果:12
NSLog(@"%zi",[@"hello world,世界你好!"
length]);
//结果:17
NSLog(@"%c",[@"abc"
characterAtIndex:0]);
//结果:a
const char *s = [@"abc"
UTF8String];//转换为C语言字符串
NSLog(@"%s",s);
//结果:abc
}
int main(int argc,
const char * argv[]) {
test1();
test2();
test3();
test4();
test5();
return 0;
}
相关文章推荐
- TP框架上传图片时报错“非法上传"处理
- JS函数式编程【译】3.2 开发和生产环境
- web开发不可错过的经典代码20段
- UltraISO制作U盘启动盘安装Win7/8/10系统攻略
- Html5(4)Selection 和 Range对象
- 【转】深入理解JVM—JVM内存模型
- php开发(一)
- Struts2文件的上传
- Kmeans中k值的相关理论
- 安装PostgreSQL数据库(Linux篇) [转]
- core dump
- 闲聊CSS之关于clearfix--清除浮动
- html5基础学习
- Verilog语言
- gdb常用
- (一一五)利用NSKeyedArchiver实现任意对象转为二进制
- 每日一题(35) - 栈的压入、弹出序列(验证出栈序列是否合法)
- hdu 4280 Island Transport (最大流)
- (一一五)利用NSKeyedArchiver实现任意对象转为二进制
- 数据库简单操作—注册和登录实例