//NSString
//创建不可变字符串对象的类
//NSMutableString
//创建可变字符串对象的类
//OC语言完全兼容C语言
//OC字符串与C语言字符串的区别:
//1.OC字符串是一个字符串对象,字符串常量需要用@""包含
//2.C语言字符串用""包含
//3.C语言的字符串以字符的ASCII码形式存储的
//4.OC中的字符串以Unicode编码(万国码)形式存储:UTF-8, UTF-16, UTF-64
//UTF-8:多字节编码
//5.打印OC字符串用%@,打印C语言字符串用%s
//
// main.m
// IOS150610_ObjectiveC_NSString
//
// Created by Peng Junlong on 15/6/10.
// Copyright (c) 2015年 Peng Junlong. All rights reserved.
//
//****************************
//* *
//* NSString *
//* *
//****************************
#import <Foundation/Foundation.h>
int main(int argc, const char * argv[]) {
@autoreleasepool {
NSLog(@"中国");
printf("%lu\n",strlen("中国"));//长度为6
NSString *str1 = @"Hello World"; //@"Hello World"是一个字符串常量,存储在常量区
str1 = @"Hello China"; //没有改变@"Hello World"的内容,只是改变了str1指向的地址
NSLog(@"%@",str1);
//格式化创建字符串对象
//- (instancetype)initWithFormat:(NSString *)format, ... NS_FORMAT_FUNCTION(1,2);
NSString *str2 = [[NSString alloc] initWithFormat:@"%s,%d,%@","Hello",234,@"World"];//构造方法
NSLog(@"str2 = %@",str2);//结果:str2 = Hello,234,World
//用格式化的类方法创建字符串对象
//+ (instancetype)stringWithFormat:(NSString *)format, ... NS_FORMAT_FUNCTION(1,2);
NSString *str3 = [NSString stringWithFormat:@"%s,%d,%@","Hello",456,@"China"];//类方法
NSLog(@"str3 = %@",str3);//结果:str3 = Hello,456,China
//用给定的字符串对象创建字符串对象
//- (instancetype)initWithString:(NSString *)aString;
NSString *str4 = @"中国教育";
NSString *str5 = [[NSString alloc] initWithString:str4]; // str5和str4指向同一块地址
NSLog(@"str5 = %@",str5); //结果:str5 = 中国教育
//用C的字符串创建OC的字符串对象
NSString *str6 = [[NSString alloc] initWithUTF8String:"中国海军"];
NSLog(@"str6 = %@",str6); //结果:str6 = 中国海军
NSString *str7 = [[NSString alloc] initWithCString:"中国陆战队" encoding:NSUTF8StringEncoding]; //使用指定编码来存储C的字符串
NSLog(@"str7 = %@",str7); //结果:str7 = 中国陆战队
// NSString *str7 = [[NSString alloc] initWithCString:"中国陆战队" encoding:NSUTF16StringEncoding]; //使用指定编码来存储C的字符串
// NSLog(@"str7 = %@",str7); //结果:str7 = 룤붛駩颈飩
//创建一个空的字符串对象,@""
NSString *str8 = [NSString string]; //string是NSString中的类方法,类方法一般都以string开头
NSLog(@"str8 = %@",str8); //结果:str8 =
NSString *str9 = [[NSString alloc] init];
NSLog(@"str9 = %@",str9); //结果:str9 =
//跟initWithString相对应
NSString *str10 = [NSString stringWithString:str7];
NSLog(@"str10 = %@",str10); //结果:str10 = 中国陆战队
//跟initWithUTF8String相对应
NSString *str11 = [NSString stringWithUTF8String:"你好中国"]; // 只能是C类型的字符串,不能是OC类型(@"")的字符串,否则会报错
NSLog(@"str11 = %@",str11); //结果:str11 = 你好中国
//跟initWithCString相对应
NSString *str12 = [NSString stringWithCString:"特种部队" encoding:NSUTF8StringEncoding];
NSLog(@"str12 = %@",str12);
}
return 0;
}