一般称NSString为字符串类。
1.创建一个字符串。
NSSstring *p=@"it cast";
NSSstring *p1=@"it cast";
NSLog(@"%@",p);
NSLog(@"%@",p1);
两个输出地址是相同的!!!
2.格式化字符串。
NSString *p = [NSString stringWithFormat:@"it cast"];
NSString *p 1= [NSString stringWithFormat:@"it cast"];
NSLog(@"%@",p);
NSLog(@"%@",p1);
输出地址不同!
3.C语言的转化。
char *s = "c字符串";
NSString *str3 = [NSString stringWithUTF8String:s];
NSLog(@"str3 - %@",str3);
注意 输出时不能使用%s!!!char 只能是一个字符 用‘’,char *字符串指针 可以是多个字符 用“”。
4.NSString的大小写。
NSString *str1 = @"abcdefgh";
NSString *str2 = [str1 uppercaseString]; //uppercaseString:把小写转化为大写。
NSLog(@"str1 - %@",str1);
NSLog(@"str2 - %@",str2);
输出结果:str1为abcdefgh,str2为ABCDEFGH。
同理 lowercaseString是把大写转化为小写。
NSString *str = @"i love china";
NSString *str2 = [str4 capitalizedString]; //capitalizedString把首字母转化为大写
运行结果为I Love China。
5,字符串比较
isEqualToString 是否相同
NSString *str1 = @"this is b string";
NSString *str2 = @"this is a string";
BOOL isSame = [str1 isEqualToString:str2];
NSLog(@"isSame - %d",isSame);
NSLog(@"compare - %ld",(long)[str1 compare:str2]);
结果: 0 ,1。
isEqualToString: 是看两个字符串是不是相同,相同输出结果为1,不同为0.
compare比较结果: 如果相同 返回值是0,若左边大于右边 则返回1,否则为-1,比较的是字符串的ASCII码。
6.获取子字符串
NSString *str1 = @"在笔直的道路上蜿蜒前行";
NSString *str2 = [str1 substringFromIndex:4];
NSLog(@"str2 - %@",str2); //substringFromIndex - 位置 , 索引 从当前位 到 尾部
运行结果为:道路上蜿蜒前行。
NSString *str3 = [str1 substringToIndex:4];
NSLog(@"str3 - %@",str3); //substringToIndex - 从首位到当前为
运行结果为:在笔直的。
7.字符串替换
NSString *str = @"www.baidu.com";
NSString *str2 = [str stringByReplacingOccurrencesOfString:@"bai" withString:@"SIS"];
NSLog(@"str2 - %@",str2);
运行结果为:www.SIS.com stringByReplacingOccurrencesOfString后面接的是被替换的内容。
8.字符串长度。
NSString *str = @"0123456";
NSLog(@"str - %lu",(unsigned long)[str length]);
str = @"我爱中国01234aaa";
NSLog(@"str - %lu",(unsigned long)[str length]);
输出结果:第一个为7,第二个为12,这里注意的是 汉字.字母.数字的长度都是1.
9.数据转换。
NSString *str=@"158";
NSString *str1=@"39";
NSLog(@"%d",(str.intValue)-(str1.intValue));
把NSString定义的字符串类型转化为 int类型,之后进行相减得到结果。
10.例题 让123-456-789-000的-消失之后输出
NSString *p=@"123-456-789-000";
NSRange rang=NSMakeRange(0, 3);
NSString*p1=[p substringWithRange:rang];
NSRange rang1=NSMakeRange(4, 3);
NSString*p2=[p substringWithRange:rang1];
NSRange rang2=NSMakeRange(8, 3);
NSString*p3=[p substringWithRange:rang2];
NSRange rang3=NSMakeRange(12, 3);
NSString*p4=[p substringWithRange:rang3];
NSLog(@"%@%@%@%@",p1,p2,p3,p4);
解题思路 先定义一个字符串,之后用nsrange截取你想得到的部分,在定义一个数组存放你截取的部分,截取4段之后输出。
11.要求用户输入AbCdEf,输出结果为aBcDeF。
char str[100];
NSLog(@"输入字符串:");
gets(str);
for (int i = 0; i<strlen(str); i++) {
if (str[i]>='A'&&str[i]<='Z') {
str[i] = str[i]+32;
}else if (str[i]>='a'&&str[i]<='z'){
str[i] = str[i]-32;
}else{
str[i] = str[i];
}
}
NSString *str1 = [NSString stringWithUTF8String:str];
NSLog(@"%@",str1);
12.要求用户输入一行字符串,倒序输出。
char str[100];
NSLog(@"请输入一行字符串");
gets(str);
for (int i=0; i<strlen(str)-1; i++) {
for (int j=0; j<strlen(str)-i-1; j++) {
char temp=str[j];
str[j]=str[j+1];
str[j+1]=temp;
}
}NSString *str1 = [NSString stringWithUTF8String:str];
NSLog(@"%@",str1);