考核例题关于字符串
#define NSLog(FORMAT, ...) fprintf(stderr,"%s\n",[[NSString stringWithFormat:FORMAT, ##__VA_ARGS__] UTF8String]);
#import <Foundation/Foundation.h>
int main(int argc, const char * argv[]) {
@autoreleasepool {
/*
第1题 字符串中的world替换为i bookan wisdom
*/
NSString *str1=@"hello world and sunshine";
NSRange rang1=[str1 rangeOfString:@"world"];
NSMutableString *brr=[[NSMutableString alloc]init];
brr=[[NSMutableString alloc]initWithString:str1];
[brr replaceCharactersInRange:rang1 withString:@"i bookan wisdom"];
NSLog(@"%@",brr);
/*
第2题 字符串的相加,以字符串输出,并输出长度
*/
NSString *str2=@"999";
NSString *str3=@"888";
NSString *st=[[NSString alloc]initWithFormat:@"%@%@",str2,str3];
NSLog(@"%@",st);
/*
第3题 比较字符串大小
*/
NSString *str4=@"ABC";
NSString *str5=@"ABc";
NSComparisonResult result1=[str4 compare:str5];
if(result1==-1)
{
NSLog(@"str4小");
}else if(result1==0)
{
NSLog(@"相等");
}else
{
NSLog(@"str5小")
}
/*
第4题 截取Android并输出
*/
NSString *str6=@"iphoneAndroid";
NSString *str11=[str6 substringFromIndex:6];
NSLog(@"%@",str11);
/*
第5题 用c语言创建一个oc字符串,并输出。使用两种方法。
*/
char *s="zhangsanfeng";
NSString *t=[NSString stringWithFormat:@"%s",s];
NSString *t1=[NSString stringWithUTF8String:s];
NSLog(@"%@",t);
NSLog(@"%@",t1);
/*
第6题 字符串内所有a都替换成A;
*/
NSString *str7=@"whatareyou";
NSString *newStr=[str7 stringByReplacingOccurrencesOfString:@"a" withString:@"A"];
NSLog(@"str=%@",newStr);
/*
第7题 判断字符串是否以http开头
*/
NSString *str8=@"http://www.sina.com.cn";
BOOL r=[str8 hasPrefix:@"http"];
if(r==0)
{
NSLog(@"NO");//不以http开头为NO
}else
{
NSLog(@"YES");//如果是以http开头则YES,
}
/*
第8题 将字符串内admin和123截取出来
*/
NSString *str9=@"http://localhost:8099/test/user=admin&pwd=123";
//方法一
NSRange rang4;
rang4.location=32;
rang4.length=5;
NSString *str13=[str9 substringWithRange:rang4]; //根据rang4截取第32位开始的5个字符
NSRange rang6=[str9 rangeOfString:@"123"];//直接截取该字符串
NSString *str14=[str9 substringWithRange:rang6];
NSLog(@"%@",str13);
NSLog(@"%@",str14);
/*
第9题 字符添加telephone:iphone iphone5修改为"telephone:iphone iphone4 iphone5 iphone6";
*/
NSString *str10=@"telephone:iphone iphone5";
NSMutableString *str16=[NSMutableString stringWithString:str10];
[str16 insertString:@"iphone4 " atIndex:17];
[str16 appendString:@" iphone6"];
NSLog(@"%@",str16);
/*
第10题 排序
*/
NSArray *arr=@[@"String 11",@"String 21",@"String 1",@"string 2",@"String 02"];
NSArray *arr2=[arr sortedArrayUsingSelector:@selector(compare:)];//按字符串的ASCII码从小到大排序
for(id str1 in arr2)
{
NSLog(@"%@",str1);
}
NSLog(@"\n");
//自定义排序——block(下面代码相当于冒泡排序)
NSComparator sort1=^(id obj1,id obj2){ //传入两个数组中的元素
NSComparisonResult result=[obj2 compare:obj1];
return result; //根据自己定义返回一定的值
};
NSArray *sort5=[arr sortedArrayUsingComparator:sort1]; //根据返回值排序
for(id str2 in sort5){
NSLog(@"%@",str2);
}
/*第11题、字符串倒置*/
NSString *arr=@" abc123.xyz789";
NSMutableArray *arr1=[[NSMutableArray alloc]init];
for(NSInteger i=[arr length];i>0;i--)
{
NSRange rang=NSMakeRange(i-1, 1);
NSString *arr3=[arr substringWithRange:rang];
[arr1 addObject:arr3];
}
NSLog(@"%@",arr1);
/*12题、将2013年05月05日转换为2013-05-05*/
NSString *arr=@"2013年05月05日";
NSString *newStr=[arr stringByReplacingOccurrencesOfString:@"年" withString:@"-"];
NSString *newStr1=[newStr stringByReplacingOccurrencesOfString:@"月" withString:@"-"];
NSString *newStr2=[newStr1 stringByReplacingOccurrencesOfString:@"日" withString:@""];
NSLog(@"%@",newStr2);
//13.将字典的key从Z->A排序,按排序后的key的顺序,输出value,将value按字符串输出
NSDictionary *dict=@{@"R":@"e",
@"T":@"e",
@"D":@"b",
@"S":@"u",
@"K":@"a",
@"A":@"s",
@"O":@" ",
@"N":@"p",
@"B":@"b",
@"J":@"u",
@"F":@" ",
@"U":@"t",
@"H":@"l",
@"E":@"j",
@"Z":@"s",
};
NSArray *arr=[dict allKeys];
NSComparator sort1=^(id obj1,id obj2){ //传入两个数组中的元素
NSComparisonResult result=[obj2 compare:obj1];
return result; //根据自己定义返回一定的值
};
NSArray *sort2=[arr sortedArrayUsingComparator:sort1]; //根据返回值排序
NSMutableArray *value=[[NSMutableArray alloc]init];
for(NSMutableArray *v in sort2)
{
[value addObject:dict[v]];
}
NSString *brr=[[NSString alloc]init];
for(NSString *w in value)
{
brr=[brr stringByAppendingString:w];
}
NSLog(@"%@",brr);
//14、将一个整数123456789倒着输出
NSInteger i=123456789;
NSString *str=[NSString stringWithFormat:@"%ld",i];
NSLog(@"%@",str);
NSMutableArray *str1=[[NSMutableArray alloc]init];
for(NSInteger j=[str length];j>0;j--)
{
NSRange rang=NSMakeRange(j-1, 1);
NSString *arr=[str substringWithRange:rang];
[str1 addObject:arr];
}
NSLog(@"%@",str1);
//15.以下是身份证号,输出身份证人的性别,年龄
NSString *idCard=@"210423198809040437";
NSRange rang=NSMakeRange(6, 4);
NSString *arr=[idCard substringWithRange:rang];
NSLog(@"%@",arr);
//16、身份证倒数第2位是偶数则为女生
NSRange rang1=NSMakeRange(16, 1);
NSString *a =[idCard substringWithRange:rang1];
NSInteger b=[a intValue];
if(b%2==0)
{
NSLog(@"女生");
}else{
NSLog(@"男生");
}
//17、按ASCII从低到高输出数组中的字符串
NSArray *array = @[@"Tim Cook",@"Jony Ive",@"Steve Jobs",@"Robert Brunne",@"Philip Schiller"];
NSComparator sort1=^(id obj1,id obj2){ //传入两个数组中的元素
NSComparisonResult result=[obj1 compare:obj2];
return result; //根据自己定义返回一定的值
};
NSArray *sort2=[array sortedArrayUsingComparator:sort1]; //根据返回值排序
for(id str2 in sort2){
NSLog(@"%@",str2);
}
//18、数组中元素的查找删除
NSMutableArray *arr=[NSMutableArray array];
for(int i=0;i<array.count;i++)
{
NSString *brr=array[i];
if(![brr isEqual:@"Robert Brunne"])
{
[arr addObject:brr];
}
}
// [arr removeObjectAtIndex:3];
NSLog(@"%@",arr);
}
return 0;
}